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
怎么解决 展开
#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
怎么解决 展开
展开全部
你这是要什么效果?
也许你要的是这个效果吧?
#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);
}
也许你要的是这个效果吧?
#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);
}
展开全部
问题出在这一句swap(reverse(x),reverse(y));
reverse函数没有返回值,即void,所以把它作为swap的参数是不正确的
可以这样改
reverse(x);
reverse(y);
swap(x,y);
reverse函数没有返回值,即void,所以把它作为swap的参数是不正确的
可以这样改
reverse(x);
reverse(y);
swap(x,y);
追问
嗯,谢谢你~祝天天好心情!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void reverse(char a[N])/
swap(reverse(x),reverse(y));
swap(char a[N],char b[N])/
可以把char[]定义为全局的
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);
}
//正确的如下:
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询