帮看下这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)
} 展开
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)
} 展开
6个回答
展开全部
错的地方主要有以下几个地方:
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)末尾少了个分号,加个分号就好了,这样才是一个完整的语句。
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)末尾少了个分号,加个分号就好了,这样才是一个完整的语句。
展开全部
#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好像没有用嘛
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好像没有用嘛
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二行末尾少了分号。
第十三行(倒数第二行)少了分号。
main 函数头应该写成
int main ( )
否则在某些环境下会出问题。当然, main 函数的最后也要加上
return 0;
以配合上述行动。
main 函数调用 aver 函数的时候,实参 n 是 char 型,而形参 n 是 int 型。这样虽然不会有什么大问题,但是编译器会警告。
aver 函数形参 n 似乎没有用到。这种情况下有的编译器也会警告。
第十三行(倒数第二行)少了分号。
main 函数头应该写成
int main ( )
否则在某些环境下会出问题。当然, main 函数的最后也要加上
return 0;
以配合上述行动。
main 函数调用 aver 函数的时候,实参 n 是 char 型,而形参 n 是 int 型。这样虽然不会有什么大问题,但是编译器会警告。
aver 函数形参 n 似乎没有用到。这种情况下有的编译器也会警告。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
倒数第二行少一分号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int aver(char data[],int)
错误
错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询