#include <stdio.h>void main(){ int i,a=0,b=0,c=0; char x; x=getchar(); for(i=1;i<=10;i++) { if(c>='A'&&c<='Z'||c>='a'&&c<='z') a++; else if(c>='0'&&c<='9')b++; else c++; } printf("%d %d %d",a,b,c);}哪里错了??????要求10个任意字符
首先:你在程序中错误的用变量c去看做字符变量x来判断其类型!也就是说:在if语句中的c应该换成字符型变量x而不是整型变量c;其次:按照你的程序,程序只能接受一个字符,并能准确的判断其类型(是英文单词?是数字?还是其他)。但是它不能接受十个字符!修改方法如下:#include <stdio.h>void main(){ int i,a=0,b=0,c=0; char x; for(i=1;i<=10;i++) { x=getchar();将该语句从循环外移到循环内部,现在就能保证x能接//受不同的十次输入! if(x>='A'&&x<='Z'||x>='a'&&x<='z') a++;//将c换成字符变量x就//可以了! else if(x>='0'&&x<='9')b++; else c++; } printf("英文字母的个数是:%d \n数字的个数是:%d \n其他字符的个数是:%d\n",a,b,c);}建议:在以后的编程中,要注意变量的调用,做到能准确的调用应该被调用的变量!希望对你能有所帮助!
#include <stdio.h>void main(){ int i,a=0,b=0,c=0; char x[100]; gets(x); for(i=0;i<10;i++) { if((x[i]>='A'&&x[i]<='Z')||(x[i]>='a'&&x[i]<='z')) a++; else if(x[i]>='0'&&x[i]<='9')b++; else c++; } printf("%d %d %d",a,b,c);}