C语言函数问题
#include<stdio.h>
void fun(char)
main()
{char a[20];int i;
gets(a);
fun(a);
}
void fun(char a[])
{int i=0,j=0,k=0,m=0,s;
for(s=0;s<20;s++)
{
whlie(a[s]!='\\0')
{
if('a'<=a[s]<='z'||'A'<=a[s]<='Z') i++;
else if('0'<=a[s]<='9') j++;
else if(a[s]==' ') k++;
else m++;
}
}
printf("字母=%d,数字=%d,空格=%d,其他=%d",i,j,k,m);
}
求教此程序哪里错误
答案:首先,('a'<=a[s]<='z')等部分都应改为两个关系运算的&&运算,即(a[s]>='a'&&a[s]<='z'),这样的错误有三处,照样改掉就行了;
其次,fun函数中for语句后又有一个while语句,这样本来意思是想控制a[s]不等于'\\0',但其实是进入了另一循环,只要有输入,a[0]就不等于'\\0',因此就进入while的死循环中了,建议这样改:
void fun(char[])
{
int i=0,j=0,k=0,m=0,s=0;
while(a[s]!='\\0')/*只用一个while循环语句*/
{
if(a[s]>='a'&&a[s]<='z'||a[s]>='A'&&a[s]<='Z')/*字母*/
i++;
else if(a[s]>='0'&&a[s]<='9")/*数字*/
j++;
else if(a[s]==' ')/*空格*/
k++;
else m++;/*其他*/
s++;
}
printf("字母=%d,数字=%d,空格=%d,其他=%d",i,j,k,m);
}
去调试一下,我试过了,应该没问题的!void fun(char)
这一句在申明的时候,后面没有分号。。。
1.貌似搜搜的网页有问题。所你你的某些错误我没办法看。
就我发现的来说:
你声明了一个空型的函数func, 参数只有一个,是字符型。。。(后面要有分号的。但你没有、、、)
而你在定义时,参数却成了字符指针类型。。。所以这儿错了。。。
上一个:C语言命令问题
下一个:C语言问题