在C中显示字母数和小数位数
我已经在这个简单的代码上工作了好几个小时了,我不知道到底出了什么问题!我需要在标准输入中显示字母数和小数位数。到目前为止,我有:在C中显示字母数和小数位数,c,C,我已经在这个简单的代码上工作了好几个小时了,我不知道到底出了什么问题!我需要在标准输入中显示字母数和小数位数。到目前为止,我有: #include<stdio.h> #include<ctype.h> int isalpha(int); int isdigit (int); int main() { int c; while((c=getchar())!=EOF) printf("The number of letters is %d and th
#include<stdio.h>
#include<ctype.h>
int isalpha(int);
int isdigit (int);
int main()
{
int c;
while((c=getchar())!=EOF)
printf("The number of letters is %d and the number of digits is %d.\n", isalpha(c), isdigit(c));
return 0;
}
int isalpha(int one)
{
int ch;
int i;
i=0;
scanf("%d", &ch);
if(isalpha(ch))
i++;
return i;
}
int isdigit(int two)
{
int a;
int k;
k=0;
scanf("%d", &a);
if(isdigit(a))
k++;
return k;
}
#包括
#包括
int-isalpha(int);
国际数字图书馆;
int main()
{
INTC;
而((c=getchar())!=EOF)
printf(“字母数为%d,数字数为%d.\n”,isalpha(c),isdigit(c));
返回0;
}
int isalpha(int one)
{
int-ch;
int i;
i=0;
scanf(“%d”和“ch”);
if(艾萨帕(ch))
i++;
返回i;
}
整数isdigit(整数二)
{
INTA;
int k;
k=0;
scanf(“%d”和“&a”);
if(isdigit(a))
k++;
返回k;
}
每当我试图运行它时,程序就会崩溃,我不知道代码的哪一部分出错了。虽然我在这个领域还没有太多的经验,所以非常感谢您的帮助!先谢谢你 只需轻轻使用现有的API,并获得如下所示的计数
int alp = 0;
int dig = 0;
while ((c = getchar()) != EOF)
{
if (isalpha(c)
alp++;
else if (isdigit(c))
dig++;
}
printf("The number of letters is %d and the number of digits is %d.\n", alp,dig);
PS:如果输入中有
\n
,请注意刷新换行符只需轻轻使用现有的API并获得如下所示的计数
int alp = 0;
int dig = 0;
while ((c = getchar()) != EOF)
{
if (isalpha(c)
alp++;
else if (isdigit(c))
dig++;
}
printf("The number of letters is %d and the number of digits is %d.\n", alp,dig);
PS:如果输入中有
\n
,请注意刷新换行符只需轻轻使用现有的API并获得如下所示的计数
int alp = 0;
int dig = 0;
while ((c = getchar()) != EOF)
{
if (isalpha(c)
alp++;
else if (isdigit(c))
dig++;
}
printf("The number of letters is %d and the number of digits is %d.\n", alp,dig);
PS:如果输入中有
\n
,请注意刷新换行符只需轻轻使用现有的API并获得如下所示的计数
int alp = 0;
int dig = 0;
while ((c = getchar()) != EOF)
{
if (isalpha(c)
alp++;
else if (isdigit(c))
dig++;
}
printf("The number of letters is %d and the number of digits is %d.\n", alp,dig);
PS:如果输入中有
\n
,请注意刷新换行符,例如通过递归调用
//gcc -O2 count_alpha_num.c -o count_alpha_num
#include <stdio.h>
#include <ctype.h>
void count_alpha_num(FILE *fp, int *alpha, int *num){
int ch;
if(EOF==(ch=fgetc(fp)))
return ;
if(isalpha(ch))
++*alpha;
else if(isdigit(ch))
++*num;
count_alpha_num(fp, alpha, num);
}
int main(void){
int a_c = 0, n_c = 0;
count_alpha_num(stdin, &a_c, &n_c);
printf("The number of letters is %d and the number of digits is %d.\n", a_c, n_c);
return 0;
}
//gcc-O2计数\u alpha\u num.c-o计数\u alpha\u num
#包括
#包括
无效计数\u alpha\u num(文件*fp,int*alpha,int*num){
int-ch;
如果(EOF==(ch=fgetc(fp)))
返回;
if(艾萨帕(ch))
++*阿尔法;
否则,如果(isdigit(ch))
++*num;
计数α数(fp,alpha,num);
}
内部主(空){
int a_c=0,n_c=0;
计数α数(标准、a、c和n);
printf(“字母数为%d,位数为%d.\n”,a_c,n_c);
返回0;
}
相互递归的示例
#include <stdio.h>
#include <ctype.h>
void count_num(int loaded, int ch, int *alpha, int *num);
void count_alpha(int loaded, int ch, int *alpha, int *num){
if(ch==EOF)
return ;
if(isalpha(ch)){
++*alpha;
count_alpha(0, getchar(), alpha, num);
} else {
if(loaded)//Already been inspected by 'count_num'
count_num(0, getchar(), alpha, num);
else
count_num(1, ch, alpha, num);
}
}
void count_num(int loaded, int ch, int *alpha, int *num){
if(ch==EOF)
return ;
if(isdigit(ch)){
++*num;
count_num(0, getchar(), alpha, num);
} else {
if(loaded)
count_alpha(0, getchar(), alpha, num);
else
count_alpha(1, ch, alpha, num);
}
}
int main(void){
int a_c = 0, n_c = 0;
count_alpha(0, getchar(), &a_c, &n_c);
printf("The number of letters is %d and the number of digits is %d.\n", a_c, n_c);
return 0;
}
#包括
#包括
void count_num(加载的int、ch的int、alpha的int*alpha、num的int*num);
void count_alpha(int-loaded,int-ch,int*alpha,int*num){
如果(ch==EOF)
返回;
if(艾萨帕(ch)){
++*阿尔法;
count_alpha(0,getchar(),alpha,num);
}否则{
如果(已加载)//已由“count\u num”检查
count_num(0,getchar(),alpha,num);
其他的
计数(1,ch,alpha,num);
}
}
无效计数_num(加载的整数、整数、整数*α、整数*num){
如果(ch==EOF)
返回;
if(isdigit(ch)){
++*num;
count_num(0,getchar(),alpha,num);
}否则{
如果(已加载)
count_alpha(0,getchar(),alpha,num);
其他的
计数α(1,ch,alpha,num);
}
}
内部主(空){
int a_c=0,n_c=0;
计数α(0,getchar(),&a\u c,&n\u c);
printf(“字母数为%d,位数为%d.\n”,a_c,n_c);
返回0;
}
递归调用的示例
//gcc -O2 count_alpha_num.c -o count_alpha_num
#include <stdio.h>
#include <ctype.h>
void count_alpha_num(FILE *fp, int *alpha, int *num){
int ch;
if(EOF==(ch=fgetc(fp)))
return ;
if(isalpha(ch))
++*alpha;
else if(isdigit(ch))
++*num;
count_alpha_num(fp, alpha, num);
}
int main(void){
int a_c = 0, n_c = 0;
count_alpha_num(stdin, &a_c, &n_c);
printf("The number of letters is %d and the number of digits is %d.\n", a_c, n_c);
return 0;
}
//gcc-O2计数\u alpha\u num.c-o计数\u alpha\u num
#包括
#包括
无效计数\u alpha\u num(文件*fp,int*alpha,int*num){
int-ch;
如果(EOF==(ch=fgetc(fp)))
返回;
if(艾萨帕(ch))
++*阿尔法;
否则,如果(isdigit(ch))
++*num;
计数α数(fp,alpha,num);
}
内部主(空){
int a_c=0,n_c=0;
计数α数(标准、a、c和n);
printf(“字母数为%d,位数为%d.\n”,a_c,n_c);
返回0;
}
相互递归的示例
#include <stdio.h>
#include <ctype.h>
void count_num(int loaded, int ch, int *alpha, int *num);
void count_alpha(int loaded, int ch, int *alpha, int *num){
if(ch==EOF)
return ;
if(isalpha(ch)){
++*alpha;
count_alpha(0, getchar(), alpha, num);
} else {
if(loaded)//Already been inspected by 'count_num'
count_num(0, getchar(), alpha, num);
else
count_num(1, ch, alpha, num);
}
}
void count_num(int loaded, int ch, int *alpha, int *num){
if(ch==EOF)
return ;
if(isdigit(ch)){
++*num;
count_num(0, getchar(), alpha, num);
} else {
if(loaded)
count_alpha(0, getchar(), alpha, num);
else
count_alpha(1, ch, alpha, num);
}
}
int main(void){
int a_c = 0, n_c = 0;
count_alpha(0, getchar(), &a_c, &n_c);
printf("The number of letters is %d and the number of digits is %d.\n", a_c, n_c);
return 0;
}
#包括
#包括
void count_num(加载的int、ch的int、alpha的int*alpha、num的int*num);
void count_alpha(int-loaded,int-ch,int*alpha,int*num){
如果(ch==EOF)
返回;
if(艾萨帕(ch)){
++*阿尔法;
count_alpha(0,getchar(),alpha,num);
}否则{
如果(已加载)//已由“count\u num”检查
count_num(0,getchar(),alpha,num);
其他的
计数(1,ch,alpha,num);
}
}
无效计数_num(加载的整数、整数、整数*α、整数*num){
如果(ch==EOF)
返回;
if(isdigit(ch)){
++*num;
count_num(0,getchar(),alpha,num);
}否则{
如果(已加载)
count_alpha(0,getchar(),alpha,num);
其他的
计数α(1,ch,alpha,num);
}
}
内部主(空){
int a_c=0,n_c=0;
计数α(0,getchar(),&a\u c,&n\u c);
printf(“字母数为%d,位数为%d.\n”,a_c,n_c);
返回0;
}
递归调用的示例
//gcc -O2 count_alpha_num.c -o count_alpha_num
#include <stdio.h>
#include <ctype.h>
void count_alpha_num(FILE *fp, int *alpha, int *num){
int ch;
if(EOF==(ch=fgetc(fp)))
return ;
if(isalpha(ch))
++*alpha;
else if(isdigit(ch))
++*num;
count_alpha_num(fp, alpha, num);
}
int main(void){
int a_c = 0, n_c = 0;
count_alpha_num(stdin, &a_c, &n_c);
printf("The number of letters is %d and the number of digits is %d.\n", a_c, n_c);
return 0;
}
//gcc-O2计数\u alpha\u num.c-o计数\u alpha\u num
#包括
#包括
无效计数\u alpha\u num(文件*fp,int*alpha,int*num){
int-ch;
如果(EOF==(ch=fgetc(fp)))
返回;
if(艾萨帕(ch))
++*阿尔法;
否则,如果(isdigit(ch))
++*num;
计数α数(fp,alpha,num);
}
内部主(空){
int a_c=0,n_c=0;
计数α数(标准、a、c和n);
printf(“字母数为%d,位数为%d.\n”,a_c,n_c);
返回0;
}
相互递归的示例
#include <stdio.h>
#include <ctype.h>
void count_num(int loaded, int ch, int *alpha, int *num);
void count_alpha(int loaded, int ch, int *alpha, int *num){
if(ch==EOF)
return ;
if(isalpha(ch)){
++*alpha;
count_alpha(0, getchar(), alpha, num);
} else {
if(loaded)//Already been inspected by 'count_num'
count_num(0, getchar(), alpha, num);
else
count_num(1, ch, alpha, num);
}
}
void count_num(int loaded, int ch, int *alpha, int *num){
if(ch==EOF)
return ;
if(isdigit(ch)){
++*num;
count_num(0, getchar(), alpha, num);
} else {
if(loaded)
count_alpha(0, getchar(), alpha, num);
else
count_alpha(1, ch, alpha, num);
}
}
int main(void){
int a_c = 0, n_c = 0;
count_alpha(0, getchar(), &a_c, &n_c);
printf("The number of letters is %d and the number of digits is %d.\n", a_c, n_c);
return 0;
}
#包括
#包括
void count_num(加载的int、ch的int、alpha的int*alpha、num的int*num);
void count_alpha(int-loaded,int-ch,int*alpha,int*num){
如果(ch==EOF)
返回;
if(艾萨帕(ch)){
++*阿尔法;
count_alpha(0,getchar(),alpha,num);
}否则{
如果(已加载)//已由“count\u num”检查
count_num(0,getchar(),alpha,num);
其他的
计数(1,ch,alpha,num);
}
}
无效计数_num(加载的整数、整数、整数*α、整数*num){
如果(ch==EOF)
返回;
if(isdigit(ch)){
++*num;
count_num(0,getchar(),alpha,num);
}否则{
如果(已加载)
计数α(0,getchar(),α,num