一个C语言程序,为什么编译错误了
#include<stdio.h>#include<string.h>main(){char*str1[20],*str2[20],*str3[20];charswap(...
#include <stdio.h>
#include <string.h>
main()
{
char *str1[20],*str2[20],*str3[20];
char swap(char *p1,char *p2);
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%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);
} 展开
#include <string.h>
main()
{
char *str1[20],*str2[20],*str3[20];
char swap(char *p1,char *p2);
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%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);
} 展开
6个回答
展开全部
首先 字符串不能那么定义,两种方式
1.char *str1;//char *就代表你定义的是一个指针,指针可以操纵内存,打到字符串的目的,不过这样不安全,因为你没有指出字符串的长度
2.char str1[20]//这就表明你定义了一个char型的20个长度的数组
另外你要知道,数组的名字其实就是该数组的第一个元素的地址,也就是 char *str1和char str1[20]中的str1代表的都是字符串的地址
该程序,还有错误,你在main函数 运行的时候并没有 声明 char swap(..)函数,所以编译器不认识swap()函数,两种解决办法,第一:你在main函数之前给他个声明,这样char swap(char *p1,char *p2); 那么 你函数体写在后面就没关系了。第二:把 swap(..)整个函数 拉到 main函数的上面。
1.char *str1;//char *就代表你定义的是一个指针,指针可以操纵内存,打到字符串的目的,不过这样不安全,因为你没有指出字符串的长度
2.char str1[20]//这就表明你定义了一个char型的20个长度的数组
另外你要知道,数组的名字其实就是该数组的第一个元素的地址,也就是 char *str1和char str1[20]中的str1代表的都是字符串的地址
该程序,还有错误,你在main函数 运行的时候并没有 声明 char swap(..)函数,所以编译器不认识swap()函数,两种解决办法,第一:你在main函数之前给他个声明,这样char swap(char *p1,char *p2); 那么 你函数体写在后面就没关系了。第二:把 swap(..)整个函数 拉到 main函数的上面。
展开全部
char *str1[20],*str2[20],*str3[20];
char *p[20];
这两个吧*都去掉,就好了
解释:定义字符串数组,加上*,相当于二维数组,不能那么赋值
char *p[20];
这两个吧*都去掉,就好了
解释:定义字符串数组,加上*,相当于二维数组,不能那么赋值
追问
去掉了,还是出现一个错误error C4716: 'swap' : must return a value
追答
我用win-tc没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不懂你程序要实现什么功能, 但是改掉点东西可以运行了
#include <stdio.h>
#include <string.h>
char swap(char *p1,char *p2)
{
char p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
return 'x';
}
void main()
{
char str1[20],str2[20],str3[20];
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%s\n%s\n%s\n",str1,str2,str3);
}
#include <stdio.h>
#include <string.h>
char swap(char *p1,char *p2)
{
char p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
return 'x';
}
void main()
{
char str1[20],str2[20],str3[20];
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%s\n%s\n%s\n",str1,str2,str3);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char swap(char *p1,char *p2)
{
char p[20];//不应该是char *p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
另外,swap函数没有返回值,定义为void即可
{
char p[20];//不应该是char *p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
另外,swap函数没有返回值,定义为void即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
void main()
{
char str1[20],str2[20],str3[20];
void swap(char *p1,char *p2);
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%s\n%s\n%s\n",str1,str2,str3);
}
void swap(char *p1,char *p2)
{
char p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
#include <string.h>
void main()
{
char str1[20],str2[20],str3[20];
void swap(char *p1,char *p2);
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%s\n%s\n%s\n",str1,str2,str3);
}
void swap(char *p1,char *p2)
{
char p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询