C语言:编程统计从键盘输入的字符中数字字符的个数,用换行符结束循环。

2024-11-23 04:40:41
推荐回答(5个)
回答1:

1 输入部分。

用getchar循环读入字符,当读入值为换行'\n'时退出循环。

2 统计部分。

对每个输入的字符进行判断,如果为数字字符,则累加。

3 输出部分。

退出输入循环后,输出结果值。

代码:

int main()
{
    int cnt = 0,c;
    while((c = getchar())!='\n')
        if(c>='0' &&c <='9')
            cnt++;
    printf("数字字符个数=%d\n",cnt);
}

回答2:

这个嘛,你不妨这样子做看看:
#include

int main (void)
{
int count = 0;
char ch;

while ((ch = getchar()) != '\n')
{
if (ch >= '0' && ch <= '9') /* 如果这个字符为0~9 */
{
++count;
}
}

printf ("%d",count);

return 0;
}

其实你的思路也没错,下面就可以实现:
#include

int main (void)
{
char ch;
int count = 0;

while ((ch = getchar()) != '\n')
{
switch (ch)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
++count;
break;
default :
break;
}
}

printf ("%d",count);

return 0;

}

那要看你选那样喽~~呵呵 ~~时间仓促没有测试,抱歉!!!

回答3:

#include
#include

main()
{
char chr;
int count=0;

chr=getch();
printf("%c",chr);

while(chr!='\r')
{
if((chr>='0')&&(chr<='9')) count++;

chr=getch();
printf("%c",chr);
}

printf("\nthe result is: %d",count);

getch();
}

回答4:

用if+for循环就可以了,用不着switch。

回答5:

#include
ttp://freebooks.by.ru/view/CProgrammingLanguage/chapter1.html (17 of 30) [9/6/2002 12:21:11 ]
hapter 1 - A Tutorial Introduction
/* count digits, white space, others */
main()
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c-'0'];
else if (c == ' ' || c == '\n' || c == '\t')
++nwhite;
else
++nother;
printf("digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n",
nwhite, nother);
}