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

#include<stdio.h>intaver(chardata[],int)voidmain(void){chardata[]="tianxiadiyi";charn... #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)
}
展开
 我来答
百度网友ef9af9a
2009-09-04 · TA获得超过125个赞
知道答主
回答量:54
采纳率:0%
帮助的人:50.3万
展开全部
错的地方主要有以下几个地方:
1.int aver(char data[],int)作为定义的子函数,如果其没有返回值,一般声明void型,你声明为int不是不可以,但一般不这样做。
2.aver子函数中if(data[i]!='t')这句话也不是不可以,因为n的值也是‘t’,但作为你调用aver时传入的参数,n在子函数中一直没有用到。这应该不符合你的原意,应该将其改为if(data[i]!=t)
3.在调用子函数aver时,传入的实参格式不对。aver(data[],n);}中的data[]的中括号要去掉,换成aver(data,n);}。数组在作为函数参数时,实际上传入的是数组首地址,在C中实际上是当做指针处理的。你用data[]作参数,不伦不类。
4.printf("%s\n",data)末尾少了个分号,加个分号就好了,这样才是一个完整的语句。
发光的芋头
2009-09-04 · 超过26用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:70.4万
展开全部
#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好像没有用嘛
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dugucloud
2009-09-04 · TA获得超过822个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:169万
展开全部
第二行末尾少了分号。
第十三行(倒数第二行)少了分号。

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

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

aver 函数形参 n 似乎没有用到。这种情况下有的编译器也会警告。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天天生活站
2009-09-04 · 超过14用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:43.1万
展开全部
倒数第二行少一分号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7a6aee038
2009-09-04 · TA获得超过142个赞
知道答主
回答量:224
采纳率:0%
帮助的人:105万
展开全部
int aver(char data[],int)
错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式