发布网友 发布时间:2024-10-24 00:10
共5个回答
热心网友 时间:2024-11-09 23:28
1 输入部分。
用getchar循环读入字符,当读入值为换行'\n'时退出循环。
2 统计部分。
对每个输入的字符进行判断,如果为数字字符,则累加。
3 输出部分。
退出输入循环后,输出结果值。
代码:
int main()热心网友 时间:2024-11-09 23:20
#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();
}
热心网友 时间:2024-11-09 23:25
#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);
}
热心网友 时间:2024-11-09 23:28
用if+for循环就可以了,用不着switch。
热心网友 时间:2024-11-09 23:26
这个嘛,你不妨这样子做看看:
#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;
}
那要看你选那样喽~~呵呵 ~~时间仓促没有测试,抱歉!!!