帮看下这C++程序错在哪了?拜托了

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:24:14
#include <stdio.h>
int aver(char data[],int)
void main(void)
{char data[]="tian xia di yi";
char n='t';
aver(data[],n);}
int aver(char data[],int n)
{int i,j;
for(i=0,j=0;data[i]!='\0';i++)
if(data[i]!='t')
data[j++]=data[i];
data[j]='\0';
printf("%s\n",data)
}

#include <stdio.h>
int aver(char data[],int);//函数声明要加分号
void main(void)
{char data[]="tian xia di yi";
char n='t';
aver(data,n);}//参数传递应为数组首地址
int aver(char data[],int n)
{int i,j;
for(i=0,j=0;data[i]!='\0';i++)
if(data[i]!='t')//是不是应该改成if(data[i]!=n)
data[j++]=data[i];
data[j]='\0';
printf("%s\n",data);//少一个分号
return 0;//aver函数返回值是整型,要加return
}
//传递给aver的参数n好像没有用嘛

那〔J〕改是〔M〕

倒数第二行少一分号

int aver(char data[],int)
错误

第二行末尾少了分号。
第十三行(倒数第二行)少了分号。

main 函数头应该写成
int main ( )
否则在某些环境下会出问题。当然, main 函数的最后也要加上
return 0;
以配合上述行动。

main 函数调用 aver 函数的时候,实参 n 是 char 型,而形参 n 是 int 型。这样虽然不会有什么大问题,但是编译器会警告。

aver 函数形参 n 似乎没有用到。这种情况下有的编译器也会警告。

错的地方主要有以下几个地方:
1.int aver(char data[],int)作为定义的子函数,如果其没有返回值,一般声明void型,你声明为int不是不可以,但一般不这样做。
2.aver子函数中if(data[i]!='