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

我是一个C语言初学者,还不会做,请那位大哥教我一下
我个人认为是不是要用到switch 如果用到了 那么case:后面是不是字符数字可以??谢谢了

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);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-30
这个嘛,你不妨这样子做看看:
#include <stdio.h>

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 <stdio.h>

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;

}

那要看你选那样喽~~呵呵 ~~时间仓促没有测试,抱歉!!!
第2个回答  推荐于2018-02-23
#include<conio.h>
#include<stdio.h>

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();
}本回答被提问者和网友采纳
第3个回答  2008-12-30
用if+for循环就可以了,用不着switch。
第4个回答  2008-12-30
#include <stdio.h>
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);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网