输入三个字符串按从小到大顺序输出,用指针

#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); /* 以上三条语句完成比较交换功能 */
这是一个输入三个字符串按从小到大顺序输出的小程序,不能运行,其中还有个错误是错误error C2660: 'swap' : function does not take 2 parameters,是怎么回事,怎么修改?
展开
 我来答
问明6E
高粉答主

2019-05-27 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13万
展开全部

int main()

{

void sort1(char*,char*,char*);

void sort2(string&,string&,string&);

char s1[100],s2[100],s3[100];

char*p1,*p2,*p3;

string r1,r2,r3;

cin&gt;&gt;s1&gt;&gt;s2&gt;&gt;s3;

r1=string(s1);

r2=string(s2);

r3=string(s3);

p1=s1;

p2=s2;

p3=s3;

sort1(p1,p2,p3);

cout&lt;&lt;s1&lt;&lt;endl&lt;&lt;s2&lt;&lt;endl&lt;&lt;s3&lt;&lt;endl;

sort2(r1,r2,r3);

cout&lt;&lt;r1&lt;&lt;endl&lt;&lt;r2&lt;&lt;endl&lt;&lt;r3&lt;&lt;endl;

return 0;

}

扩展资料:

char用法:

char是计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型

char是一个数据类型,作用是定义字符型变量(单个或是字符串)。

比方int是整形数据,int a=3;这里int是类型,a是整型变量,3是赋值;

char s='A';char是字符类型,s是字符型变量,A是赋值给变量s;

char s[]="c program";char是字符类型,s[]是字符型数组,"c program"是赋给数组的值。

七巧板的哲学
推荐于2017-12-15 · TA获得超过110个赞
知道答主
回答量:91
采纳率:100%
帮助的人:23.9万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
//using namespace std;
void swap(char *p1,char *p2);
void main( )
{
char *str1=new char [20];char *str2=new char [20];char *str3=new char; /*定义三个字符数组*/
//char swap(); /*声明函数*/
printf("input three string: \n");
scanf("%s",str1); scanf("%s",str2);scanf("%s",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);
}
void swap(char *p1,char *p2) /*定义交换两个字符串的函数swap */
{
char *p=new char [20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p); /* 以上三条语句完成比较交换功能 */
}
/*C2660: 'swap' : function does not take 2 parameters 会出现这个错误是因为你声明的时候没把参数也写进去char swap(); 应该写成void swap(char *p1,char *p2);要把参数也写进去才行;*/
/*好久没用C写了,谢谢你让我再次用起来哈!!!!*/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心云细雨
2010-12-06 · TA获得超过687个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:337万
展开全部
#include <stdio.h>
#include<string.h>
void swap(char*,char*); /*声明函数*/
void main( )
{
char str1[20], str2[20], str3[20]; /*定义三个字符数组*/
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);
}
void swap(char*p1,char*p2) /*定义交换两个字符串的函数swap */
{
char p[20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}
是按大小排序,不是按长短。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王振林WZL
2010-12-06 · TA获得超过133个赞
知道答主
回答量:41
采纳率:0%
帮助的人:48.1万
展开全部
很久没用c了
不过,函数声明时,必须指定参数类型,而具体的参数名可以不写。
char swap(); /*声明函数*/ 不对吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式