当前位置: 代码迷 >> C语言 >> 帮忙看一下
  详细解决方案

帮忙看一下

热度:157   发布时间:2007-01-21 11:30:15.0

在turboC3.0下运行的
#include<stdio.h>
#define N 10
#define M 100
int main(void)
{
int b[N]={0},j=0;
char a[M];
while((a[j]=getchar())!='\n')
{
switch(a[j])
{
case '0':b[0]++;break;
case '1':b[1]++;break;
case '2':b[2]++;break;
case '3':b[3]++;break;
case '4':b[4]++;break;
case '5':b[5]++;break;
case '6':b[6]++;break;
case '7':b[7]++;break;
case '8':b[8]++;break;
case '9':b[9]++;break;
default :j++;
}
}
for(j=0;j<N;j++)
printf("%d=>%d\n",j,b[j]);
return 0;
}
我验证了,结果正确.


----------------解决方案--------------------------------------------------------
c=getch() 从键盘读入一个字符但不回显赋给c
c=getche() 从键盘读入一个字符并回显赋给c
对于下面的语句:
void main()
{
char c;
while((c=getchar())!='\n');
printf("%c",c);
printf("\n\n");
}
来说
c=getchar() 等待键盘输入,直到按回车确认结束,并回显回车前输入的所有字符,但只有第一个字符作为函数的返回值,未被提取的仍保留在I/O流中.没调用一次读最近的一个字符,同时把它释放,直到不满足循环条件.

你可能是在输入字符是出的错




----------------解决方案--------------------------------------------------------
#define M 100
#define N 10
#include <stdio.h>
int main(void)
{
char a[M];
char c;
int b[N]={0,0,0,0,0,0,0,0,0,0};
int i=0;
for(;((c=getchar())!='\n')&&(i<M);i++)
{
a[i]=c;
switch(a[i])
{
case '0':b[0]++;break;
case '1':b[1]++;break;
case '2':b[2]++;break;
case '3':b[3]++;break;
case '4':b[4]++;break;
case '5':b[5]++;break;
case '6':b[6]++;break;
case '7':b[7]++;break;
case '8':b[8]++;break;
case '9':b[9]++;break;
}
/*if(a[i]=='0')b[0]++;
else if(a[i]=='1')b[1]++;
else if(a[i]=='2')b[2]++;
else if(a[i]=='3')b[3]++;
else if(a[i]=='4')b[4]++;
else if(a[i]=='5')b[5]++;
else if(a[i]=='6')b[6]++;
else if(a[i]=='7')b[7]++;
else if(a[i]=='8')b[8]++;
else if(a[i]=='9')b[9]++;
i++;*/
}
for(i=0;i<N;i++)printf("%d的个数:%d\n",i,b[i]);
}运行可以了
----------------解决方案--------------------------------------------------------
  相关解决方案