求助,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); /* 完成比较交换功能 */
} 展开
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); /* 完成比较交换功能 */
} 展开
5个回答
展开全部
#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]
还有你的函数没有返回值,系统会报错的。
第二 你的 函数里*p[20];应该写成 p[20]
还有你的函数没有返回值,系统会报错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char swap(); /*声明函数*/
也要把参数写进去啊
char swap(char*p1,char*p2);
以及char *p[20];
星号去掉,才是字符串
也要把参数写进去啊
char swap(char*p1,char*p2);
以及char *p[20];
星号去掉,才是字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *p[20]; ==> char p[20];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基本上使用data2的时候
data2就已经是代表指针了,
再加&,
就有点多馀了.
data2因为是array,
所以他实际是一个指针,
指到连续位置上的第一个int
变量接收端,
写法其实重复了.
(int
*)
-
指到int指针
arr[]
-
阵列
基本上,
接收只需要用其中一
个,
即可接收data2.
(不是接收&data2)
data2就已经是代表指针了,
再加&,
就有点多馀了.
data2因为是array,
所以他实际是一个指针,
指到连续位置上的第一个int
变量接收端,
写法其实重复了.
(int
*)
-
指到int指针
arr[]
-
阵列
基本上,
接收只需要用其中一
个,
即可接收data2.
(不是接收&data2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询