c语言编译时中出现:cannot convert parameter 1 from 'void' to 'char []' 怎么办,新手在自学。。

/*两个char型数组,把a数组倒置放入b数组,b数组也倒置放入a数组*/#include<stdio.h>#include<string.h>#defineN10voi... /* 两个char型数组,把a数组倒置放入b数组,b数组也倒置放入a数组 */

#include <stdio.h>
#include <string.h>
#define N 10

void reverse(char a[N]);
void swap(char a[N],char b[N]);

void main()
{
char x[N],y[N];

swap(reverse(x),reverse(y));

printf("%d\n\n%d\n",x[N],y[N]);
}

void reverse(char a[N])/*倒置*/
{
int c,i,j;

for(i=0,j=N-1;i<j;i++,j--)
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}

void swap(char a[N],char b[N])/*转换*/
{
int temp;

temp=a[N];
a[N]=b[N];
b[N]=temp;
}

编译时出现:error C2664: 'swap' : cannot convert parameter 1 from 'void' to 'char []'
Expressions of type void cannot be converted to other types
怎么解决
展开
 我来答
parkerzm
2012-02-23 · 超过42用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:121万
展开全部
你这是要什么效果?
也许你要的是这个效果吧?
#include <stdio.h>
#include <string.h>
#define N 10

void reverse(char a[N]);
void swap(char a[N],char b[N]);

void main()
{
char x[N],y[N];
strcpy(x,"1234567890");
strcpy(y,"abcdefghij");
reverse(x);
reverse(y);
swap(x,y);

printf("%s\n%s\n",x,y);
}

void reverse(char a[N])/*倒置*/
{
int c,i,j;

for(i=0,j=N-1;i<j;i++,j--)
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}

void swap(char *a,char *b)/*转换*/
{
char temp[N];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
zzu_liuwei
2012-02-23 · TA获得超过372个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:223万
展开全部
问题出在这一句swap(reverse(x),reverse(y));
reverse函数没有返回值,即void,所以把它作为swap的参数是不正确的
可以这样改
reverse(x);
reverse(y);
swap(x,y);
追问
嗯,谢谢你~祝天天好心情!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
名师面授精华
2012-02-23 · TA获得超过421个赞
知道小有建树答主
回答量:236
采纳率:83%
帮助的人:81.4万
展开全部
void reverse(char a[N])/
swap(reverse(x),reverse(y));
swap(char a[N],char b[N])/
可以把char[]定义为全局的
追问
thank you!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-02-23
展开全部
相对于程序中的其他错误,这个报错是小错误。char x[N],y[N];这两个字符数组你什么时候对其赋值?

//正确的如下:
#include <stdio.h>
#include <string.h>
#define N 10

void reverse(char a[N]);
void swap(char a[N],char b[N]);

void main()
{
char x[N]="abcd",y[N]="efghi";
reverse(x);
reverse(y);
swap(x,y);

printf("%s\n\n%s\n",x,y);
}

void reverse(char a[N])/*倒置*/
{
int c,i,j;

for(i=0,j=strlen(a)-1;i<j;i++,j--)
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}

void swap(char a[N],char b[N])/*转换*/
{
char temp[N];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式