你这写的没问题啊?
getchar能读空格和回车的,如果你输入里面多了这些结果自然不对了
#include
using namespace std;
int main()
{
cout << "input 10" << endl;
int count = 10;
char c;
int NcharS , Nnum , NcharB;
NcharS = Nnum = NcharB = 0;
while(count--)
{
cin >> c;
if (c >= 'a' && c <= 'z')
NcharS++;
else if (c >= 'A' && c <= 'Z')
NcharB++;
else if (c >= '0' && c <= '9')
Nnum++;
else{}
}
cout << "over" << endl;
cout << "大写" <
#include
main()
{
int ch,num1=0,num2=0,num3=0,i=0;
while(i<10)
{
ch=getchar();
fflush(stdin); /* 清除缓冲 */
i++;
if('A'<=ch&&ch<='Z')
num1++;
if('a'<=ch&&ch<='z')
num2++;
if('0'<=ch&&ch<='9')
num3++;
}
printf("\n%d %d %d",num1,num2,num3);
}
最笨的方法 纯用if语句判断 如果是ABCD....就是计数在变量a1里
如果是abcd....技术在a2里 否则就是数字
ch=getchar();
改为:
do
{
ch = getchar();
} while ('\n' == ch);