求助,c语言。cannot convert parameter 2 from...

#include<stdio.h>#include<string.h>voidmain(){charstr1[20],str2[20],str3[20];/*定义三个字符... #include <stdio.h>#include<string.h>void main( ){char str1[20], str2[20], str3[20]; /*定义三个字符数组*/char swap(); /*声明函数*/printf("input three string: \n");gets(str1); gets(str2); gets(str3); if(strcmp(str1 ,str2)>0) swap(str1 ,str2); /*调用函数 swap */if(strcmp(str1 ,str3)>0) swap(str1 ,str3); if(strcmp(str2 ,str3)>0) swap(str2,str3); printf("the order is: \n");printf("%s \ n%s \ n%s \ n ", str1, str2, str3);} char swap(char*p1,char*p2) /*定义交换两个字符串的函数 swap */{char *p[20];strcpy(p,p1); strcpy(p1 ,p2); strcpy(p2,p); /* 完成比较交换功能 */}

C:\本机实验\Debug\486416.cpp(9) : error C2660: 'swap' : function does not take 2 parameterscpp(10) : error C2660: 'swap' : function does not take 2 parameterscpp(11) : error C2660: 'swap' : function does not take 2 parameterscpp(13) : warning C4129: ' ' : unrecognized character escape sequencecpp(13) : warning C4129: ' ' : unrecognized character escape sequencecpp(13) : warning C4129: ' ' : unrecognized character escape sequencecpp(18) : error C2664: 'strcpy' : cannot convert parameter 1 from 'char *[20]' to 'char *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style castC:\本机实验\Debug\486416.cpp(18) : error C2664: 'strcpy' : cannot convert parameter 2 from 'char *[20]' to 'const char *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
上面有点难看:#include <stdio.h>
#include<string.h>
void main( )
{
char str1[20],str2[20], str3[20];
char swap(); /*声明函数*/
printf("inputthree string: \n");
gets(str1);gets(str2); gets(str3);
if(strcmp(str1,str2)>0) swap(str1 ,str2);
if(strcmp(str1 ,str3)>0) swap(str1 ,str3);
if(strcmp(str2 ,str3)>0) swap(str2,str3);
printf("theorder is: \n");
printf(%s \ n%s \ n%s \ n ", str1, str2, str3);
}
char swap(char*p1,char*p2)
{
char *p[20];
strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); /* 完成比较交换功能 */
}
展开
 我来答
vadocz
2013-12-27 · 超过12用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:30万
展开全部
#include <stdio.h>#include<string.h>void main( ){char str1[20], str2[20], str3[20]; /*定义三个字符数组*/void swap(char *,char *); /*声明函数*/printf("input three string: \n");gets(str1); gets(str2); gets(str3); if(strcmp(str1 ,str2)>0) swap(str1 ,str2); /*调用函数 swap */if(strcmp(str1 ,str3)>0) swap(str1 ,str3); if(strcmp(str2 ,str3)>0) swap(str2,str3); printf("the order is: \n");printf("%s \ n%s \ n%s \ n ", str1[20], str2[20], str3[20]);} void swap(char*p1,char*p2) /*定义交换两个字符串的函数 swap */{ char p[20]; strcpy(p,p1); strcpy(p1 ,p2); strcpy(p2,p); /* 完成比较交换功能 */}
匿名用户
2013-12-27
展开全部
第一你的函数声明写的不对 应该是 char swap(char*p1,char*p2);
第二 你的 函数里*p[20];应该写成 p[20]
还有你的函数没有返回值,系统会报错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庞绮露7
2013-12-27 · TA获得超过156个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:168万
展开全部
char swap(); /*声明函数*/
也要把参数写进去啊
char swap(char*p1,char*p2);

以及char *p[20];
星号去掉,才是字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ejiizhg
2013-12-27 · TA获得超过185个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:139万
展开全部
char *p[20]; ==> char p[20];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司燕舞景鑫
2019-12-06 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:565万
展开全部
基本上使用data2的时候
data2就已经是代表指针了,
再加&,
就有点多馀了.
data2因为是array,
所以他实际是一个指针,
指到连续位置上的第一个int
变量接收端,
写法其实重复了.
(int
*)
-
指到int指针
arr[]
-
阵列
基本上,
接收只需要用其中一
个,
即可接收data2.
(不是接收&data2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式