首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言一点小疑点

2012-05-28 
C语言一点小问题#includestdio.hint count[3]//声明一个全局变量int main(void){char choice0do{void

C语言一点小问题
#include<stdio.h>
int count[3];//声明一个全局变量

int main(void)
{

char choice=0;
do
{
  void search(char a[100]);//寻找各种字符的函数
char word[100];//存储任意字符的数组
printf("请输入任意的字符:");
gets(word);
search(word);
printf("所输入的字符中,有%d个字母,%d个数字,%d个空格,%d个其它字符.\n",count[0],count[1],count[2],count[3]);
printf("你想再来一遍吗?");
scanf(" %c",&choice);
getchar();
}
while(choice=='y');
}

void search(char a[100])
{
int i;
for(i=0;a[i]!='\0';i++)
{
if(a[i]==32)
count[2]++;
else if(a[i]>='0' && a[i]<'9')
count[1]++;
else if(a[i]>='a' && a[i]<'z')
count[0]++;
else if(a[i]>='A' && a[i]<='Z')
count[0]++;
else
count[3]++;
}
}

为什么循环输出的结果会累加呢????怎么解决呢?各位大神`````求教啦```

[解决办法]

C/C++ code
#include<stdio.h>int count[3]; //声明一个全局变量int main(void){        char choice=0;    do    {        void search(char a[100]); //寻找各种字符的函数        char word[100]; //存储任意字符的数组        printf("请输入任意的字符:");        gets(word);        search(word);        printf("所输入的字符中,有%d个字母,%d个数字,%d个空格,%d个其它字符.\n",count[0],count[1],count[2],count[3]);        printf("你想再来一遍吗?");        fflush(stdin);        scanf("%c",&choice);        getchar();    }    while(choice=='y');    return 0;}void search(char a[100]){    int i;    for (i = 0;i < 3; ++i)    {        count[i] = 0;    }    for(i=0;a[i]!='\0';i++)    {        if(a[i]==32)            count[2]++;        else if(a[i]>='0' && a[i]<'9')            count[1]++;        else if(a[i]>='a' && a[i]<'z')            count[0]++;        else if(a[i]>='A' && a[i]<='Z')            count[0]++;        else            count[3]++;    }}
[解决办法]
我以为什么哦。这些都是小问题,你每次重新开始输入字符的时候,count[0]=0,count[1]=0;count[2]=0;懂了吗
#include<stdio.h>
int count[4]; //声明一个全局变量,这是4 ,不是3;数组下标是4-1=3;
int main(void)
{

char choice=0;
do
{
count[0]=0;count[1]=0;count[2]=0;count[3]=0; //要初始化为0;你每次重新计数了,要使它们为0
void search(char a[100]); //寻找各种字符的函数
char word[100]; //存储任意字符的数组
printf("请输入任意的字符:");
gets(word);
search(word);
printf("所输入的字符中,有%d个字母,%d个数字,%d个空格,%d个其它字符.\n",count[0],count[1],count[2],count[3]);
printf("你想再来一遍吗?");
scanf(" %c",&choice);
getchar();
}
while(choice=='y');
}

void search(char a[100])
{
int i;
for(i=0;a[i]!='\0';i++)
{
if(a[i]==32)
count[2]++;
else if(a[i]>='0' && a[i]<'9')
count[1]++;
else if(a[i]>='a' && a[i]<'z')
count[0]++;
else if(a[i]>='A' && a[i]<='Z')
count[0]++;
else
count[3]++;
}
}

热点排行