输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小 到大顺序输出。 改错!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小 到大顺序输出。 改错!!相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<string.h>
void main()
int i,j,k,temp;
printf("请输入三个整数,并用空格隔开:\n");
scanf("%d %d %d",&i,&j,&k);
if(i>j)
temp=i;
i=j;
j=temp;

if(i>k)
temp=i;
i=k;
k=temp;

if(j>k)
temp=j;
j=k;
k=temp;

printf("这三个数由小到大的顺序为:%d %d %d\n",i,j,k);

char chuan[3][20],*p1,*p2,*p3,s;
int i;
printf("请输入三个字符串,并用空格隔开:\n");
for(i=0;i<3;i++)
gets(chuan[i]);
p1=chuan[0];
p2=chuan[1];
p3=chuan[2];

if(strcmp(p1,p2)>0)
s=p2;
p2=p1;
p1=s;

if(strcmp(p2,p3)>0)
s=p3;
p3=p2;
p2=s;

if(strcmp(p1,p2)>0)
s=p2;
p2=p1;
p1=s;

printf("这三个字符串按由小到大的顺序排列为:%s %s %s\n",*p1,*p2,*p3);

#include <stdio.h>

#include <string.h>

void CompareInt(int* a, int* b, int* c)

if( *a >= *b && *a >= *c )

if( *b >= *c )

printf("%d %d %d", *c, *b, *a);

else

printf("%d %d %d", *b, *c, *a);

if( *b >= *a && *b >= *c )

if( *a >= *c )

printf("%d %d %d", *c, *a, *b);

else

printf("%d %d %d",*a, *c, *b);

if( *c >= *a && *c >= *b )

if( *a >= *b )

printf("%d %d %d",*b, *a, *c);

else

printf("%d %d %d",*a, *b, *c);

void CompareChar(char* a, char* b, char* c)

bool key = false;

if( (strcmp(a,b)>=0 && strcmp(a,c)>=0) )//strcmp(a,c)==0?

if(strcmp(b,c)>=0)

printf("%s %s %s",c, b, a);

key = true;

else

printf("%s %s %s",b, c, a);

key = true;

if( (strcmp(b,a)>=0) && (strcmp(b,c)>=0) )

if(key)

else if(strcmp(a,c)>=0)

printf("%s %s %s",c,a,b);

key=true;

else

printf("%s %s %s",a,c,b);

key=true;

if((strcmp(c,a)>=0) && (strcmp(c,b)>=0))

if(key)

else if(strcmp(a,b)>=0)

printf("%s %s %s",b,a,c);

else

printf("%s %s %s",a,b,c);

int main(void)

int a = 0, b = 0, c = 0;

printf("please input three numbers:");

scanf("%d %d %d",&a, &b, &c);

CompareInt(&a, &b, &c);//这一部分以前是注释掉的。

char a1[20],b1[20],c1[20];

printf("\\nplease input three strings:");

scanf("%s%s%s",&a, &b, &c);

CompareChar(a1, b1, c1);//?

return 0;

strcmp(a,b)的返回值有三种可能:-1,0,1。分别表示比较的字符串a<b,a=b,a>b(这里的符号表示字符串的字典顺序)。所以(strcmp(a,b)==1||strcmp(a,b)==0就相当于整数的a >= b

按照字符串的字典顺序frank<true<zjx,比较的规则是先比第一个字母,如果相同比第二个字母。这几个字符串第一个字母就可以确定顺序 f < t < z

if (key)这个key是一个标志位,如果之前已经比较出来了就设置为true,如果之前的if里已经设置好了,那么后面的if就不会执行任何东西了。这种写法完全没有必要,用if else嵌套一下会更好。

扩展资料:

非格式化顺序I/O处理器假定是128字节的记录,任何非格式化的一个顺序I/O文件的I/O把记录指针定位在128字节物理记录的结束处,如果所读的字节数不同于原来的字节数,就可能产生不希望的结果。

例如:假定几个180字节的记录写入一个非格式化顺序文件。并假定有100个字节是从文件中第180个字节的记录中读,那么,这100个字节的记录被输入并赋值给I/O列表中的元素。记录指针则定位在下一个128字节物理记录的开始。注意,这将导致在随后的读语句中开始读时,读了额外的数据,而不会跳过额外的数据。

避免这种情况发生的最好方法是保持输入记录和输出记录长度一样。如果遵守简单的预防措施,则利用非格式化顺序I/O就可以传输大于128字节的记录。 

参考资料来源:百度百科-顺序输入

参考技术A printf("这三个字符串按由小到大的顺序排列为:%s %s %s\n",*p1,*p2,*p3);不能用*p1*p2,*p3, 要用指针变量 p1,p2,p3
s与p1,p2,p3类型不同,不能直接赋值 定义时改为*s追问

上面半截也有错误,不知道该哪

追答

二楼说的不错

参考技术B 改好了,看注释
#include<stdio.h>
#include<string.h>
int main()

int i,j,k,temp;
printf("请输入三个整数,并用空格隔开:\n");
scanf("%d %d %d",&i,&j,&k); //这里不应该出现中文逗号
if(i>j)
temp=i;
i=j;
j=temp;

if(i>k)
temp=i;
i=k;
k=temp;

if(j>k)
temp=j;
j=k;
k=temp;

printf("这三个数由小到大的顺序为:%d %d %d\n",i,j,k);
char chuan[3][20],*p1,*p2,*p3,*s; //后面s用来作地址交换,因此,应该是个指针变量
int i;
printf("请输入三个字符串,并用空格隔开:\n");
scanf( "%s %s %s" , chuan[0] , chuan[1], chuan[2] );
p1=chuan[0] ;
p2=chuan[1] ;
p3=chuan[2] ;
if(strcmp(p1,p2)>0)
s=p2;
p2=p1;
p1=s;

if(strcmp(p2,p3)>0)
s=p3;
p3=p2;
p2=s;

if(strcmp(p1,p2)>0)
s=p2;
p2=p1;
p1=s;

printf("这三个字符串按由小到大的顺序排列为:%s %s %s\n",p1,p2,p3); //这里是输出串,不能用*
return 0;
本回答被提问者和网友采纳

c语言:输入4个整数,要求按从小到大的顺序输出。

输入4个整数,要求按从小到大的顺序输出。

解:程序:

#include<stdio.h>


int main()

{

int t,a,b,c,d;

printf("请输入4个数:");

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

if (a > b)

{

t = a;

a = b;

b = t;

}

if (a > c)

{

t = a;

a = c;

c = t;

}

if (a > d)

{

t = a;

a = d;

d = t;

}

if (b > c)

{

t = b;

b = c;

c = t;

}

if (b > d)

{

t = b;

b = d;

d = t;

}

if (c > d)

{

t = c;

c = d;

d = t;

}

printf("由小到大输出:%d %d %d %d\n",a,b,c,d);

return 0;

}

结果:

请输入4个数:2,5,3,0

由小到大输出:0 2 3 5

请按任意键继续. . .


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1741421

以上是关于输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小 到大顺序输出。 改错!!的主要内容,如果未能解决你的问题,请参考以下文章

java输入三个整数 按由小到大的顺序输出

c++程序设计,输入4个整数按从小到大顺序输出

输入三个整数,比较三个数大小并按从小到大的顺序排列。python代码怎么写?高手请指导,谢谢!

输入三个整数XYZ,使其按由小到大输出java代码

编程 有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序输出它们

输入3个整数,按从小到大的顺序输出(用指针处理)