我的这个C++的程序出错了,找人帮忙改下,把正确的写给我,带上出错原因。

#include <iostream>
using namespace std;
int count (char a[]);
void main ()
{
char b[100];
int i,j=0;
cout<<"输入字符串:"<<endl;
cin.getline(b,100);
char a[]=count (b[100]);
cout<<i<<endl;
}
int count (char a[])
{
char b[100];
int i,j=0;
for(i=0;b[i]!='\0';i++)
{
if((b[i]>=65&&b[i]<=90)||(b[i]>=97&&b[i]<=122))
j++;
}
return j;
}
还是不对啊。
程序没错,但是无论输入什么,输出都是1
最新回答
风向决定发型

2024-05-05 01:26:55

//应该可以了
#include <iostream>
using namespace std;
int count (char b[]);
void main ()
{
char b[100];
int i,j=0;
cout<<"输入字符串:"<<endl;
cin.getline(b,100);
i=count (b); //调用时不能写count(b[100]),
//而且返回值是int类型,不是char[]类型,不能那样写
cout<<i<<endl;
}
int count (char b[]) //a改为b
{
//char b[100]; 删掉这行,用你传进来的数组
int i,j=0;
for(i=0;b[i]!='\0';i++)
{
if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z')) //ascii码不记得就这样写
j++;
}
return j;
}
日暮下の思念

2024-05-05 09:59:27

#include <iostream>
using namespace std;
int count (char a[]);
void main ()
{
char b[100];
int i,j=0;
cout<<"输入字符串:"<<endl;
cin.getline(b,100);
i=count (b);
cout<<i<<endl;
getchar();
}
int count (char a[])
{
char b[100];
int i,j=0;
for(i=0;b[i]!='\0';i++)
{
if((b[i]>=65&&b[i]<=90)||(b[i]>=97&&b[i]<=122))
j++;
}
return j;
}
char a[]=count (b[100]); 这句错了 两个错
count的参数错了 返回值是int类型的
改成 i = count(b)
晚街

2024-05-05 00:00:49

char a[]=count (b[100]);
换成int a=count (b);
就好了 因为你传给形参的是一个地址就好了 所以呢就写b 然后返回的是int型的 所以不能定义字符数组,
还有就是cout<<i<<endl;
这个干吗呢
应该cout<<a<<endl;
然后再函数的字符数组b不应该这样的,
正确的程序应该是这样的
#include <iostream>
using namespace std;
int count (char a[]);
void main ()
{
char b[100];
int i,j=0;
cout<<"输入字符串:"<<endl;
cin.getline(b,100);
int a=count (b);
cout<<a<<endl;
}
int count (char a[])
{

int i,j=0;
for(i=0;a[i]!='\0';i++)
{
if((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122))
j++;
}
return j;
}