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

作者&投稿:村岚 (若有异议请与网页底部的电邮联系)
输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。~

#include
#include
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("
please input three strings:");
scanf("%s%s%s",&a, &b, &c);
CompareChar(a1, b1, c1);//?
return 0;
}
strcmp(a,b)的返回值有三种可能:-1,0,1。分别表示比较的字符串ab(这里的符号表示字符串的字典顺序)。所以(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字节的记录。
参考资料来源:百度百科-顺序输入

# include
# include
using namespace std;
int main()
{
int i,j,k,temp;
cout<<"请输入三个整数:"<<endl;
cin>>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;
}cout<<i<<""<<j<<""<<k<<endl;
string str1,str2,str3,tempt;
cout<<"请输入三个字符串"<<endl;
cin>>str1>>str2>>str3;
const char *s;
const char *s1=str1.c_str();
const char *s2=str2.c_str();
const char *s3=str3.c_str();
if(strcmp(s1,s2)>0)
{
s=s1;
s1=s2;
s2=s;}if(strcmp(s1,s3)>0)
{
s=s1;
s1=s3;
s3=s;}
if(strcmp(s2,s3)>0)
{
s=s2;
s2=s3;
s3=s;}cout<<s1<<""<<s2<<""<<s3<<endl;
return 0;
} 结果:

#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("
please 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字节的记录。 

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



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

改好了,看注释
#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;
}


输入3个整数,按由小到大的顺序输出.(用指针实现)
include <stdio.h>void main(){int a,b,c,x;int *pa,*pb,*pc;pa=&a;\/\/这里的指针前的星号去掉就行了pb=&b;\/\/pc=&c;\/\/三个都一样printf("请输入3个整数\\n");scanf("%d%d%d",pa,pb,pc);if(*pa>*pb){x=*pa;*pa=*pb;*pb=x;}if(*pa>*pc){x=*pa;*pa=*pc;*pc=...

输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按...
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...

用C语言描述对于输入的任意三个整数,将它们按从小到大的顺序输出?_百 ...
1、输入三个整数x,y,z,请把这三个数由小到大输出。2、所需要的开头代码,#include "stdio.h"#include "conio.h",预处理命令,表示程序包含conio.h库文件conio.h库文件定义了通过控制台进行数据输入和数据输出的函数。3、下面这个代码是关键 int x,y,z,t; scanf("%d%d%d",&x,&y,&z)...

c语言输入3个整数按从小到大输出
输入三个整数,要求按从小到大的顺序输出。解题思路:此题采用依次比较的方法排出其大小顺序。include <stdio.h> main(){int a,b,c,t;printf("input three number please;");scanf("%d,%d,%d",&a,&b,&c);if (a>b){ t=b;b=a;a=t;} if (a>c){t=c;c=a;a=t;} if (b>c)...

C语言编程实现:利用指针,输入3个整数,按由小到大的顺序输出。_百度知 ...
<<"按由小到大顺序输出:"<<'\\n'<<a<<'\\n'<<b<<'\\n'<<c<<'\\n';return0;} 写法二、(交换指针指向的地址):include<iostream> usingnamespacestd;intmain(){ inta,b,c;int*p1,*p2,*p3;int*temp;cout<<"输入3个整数:"<<endl;cin>>a>>b>>c;p1=&a;p2=&b;p3=&c;if...

C语言 编写程序,输入三个整数,按从小到大的顺序打印这三个数
int main(){ int t,a,b,c;scanf("%d%d%d",&a,&b,&c);if(a<b){ t=a,a=b,b=t;} if(a<c){ t=a,a=c,c=t;} if(b<c){ t=b, b=c, c=t;} printf("%d %d %d\\n",a,b,c);return 0;} 原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后...

编写程序,任意输入3个整数A、B、C,按由大到小的顺序把它们打印出来_百 ...
如果第三个变量大就把它的值给第四个变量 #include "stdio.h"max(int a,int b,int c){\/\/这里就是比较 if(a>c)c=a;if(b>c)c=b;else return(c);}void main(){ int a,b,c;scanf ("%d%d%d",&a,&b,&c);printf("%d\\n",max(a,b,c));}\/\/给你C的参考一下吧 ...

编程:输入3个数,按从小到大的顺序输出?
include<stdio.h>void main(){int a,b,c,t;printf("请输入三个整数:a b c\\n");scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("排序后的三个整数为:%d,%d,%d\\n",a,b,c);} 知识延展 C语言是...

C语言作业: 从键盘输入3个整数,按照从小到大的顺序输出
include<stdio.h> void main(){ int a,b,c,t;printf("请输入三个整数:a b c\\n");scanf("%d%d%d",&a,&b,&c);if(a>b){ t=a;a=b;b=t;} if(a>c){ t=a;a=c;c=t;} if(b>c){ t=b;b=c;c=t;} printf("排序后的三个整数为:%d,%d,%d\\n",a,b,c);} ...

输入3个整数,按从小到大的顺序输出(用指针处理)
printf("请输入3个数字以逗号隔开:\\n");scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;printf("%d,%d,%d",p1, p2, p3);if(*p1 > *p2){p=p1;p1=p2;p2=p;} if(*p2 > *p3){p=p2;p2=p3;p3=p;} if(*p1 > *p2){p=p1;p1=p2;p2=p;} printf("由小到大...

海丰县18698908293: 编写程序,使任意输入的三个整数按从小到大的顺序输出.(先画框图,再写程序) -
邢响薯蓣:[答案] 用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≤b≤c. 具体操作步骤如下: 第一步;输出3个整数a,b,c. 第二步:将a与b比较,并把大者赋给b,小者赋给a. 第三步:将a与c比较,并把大者赋给c,小者赋给a,...

海丰县18698908293: 编写程序,使得任意输入的3个整数按从大到小的顺序输出. -
邢响薯蓣:[答案] 用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤如下: 第一步;输出3个整数a,b,c. 第二步:将a与b比较,并把小者赋给b,大者赋给a. 第三步:将a与c比较,并把小者赋给c,大者赋给a,此...

海丰县18698908293: 从键盘输入三个整数,按由小到大的顺序输出 -
邢响薯蓣: #include <stdio.h>#define swap(a, b) { t = a; a = b; b = t; } int main() { int a, b, c, t; scanf("%d%d%d", &a,&b,&c); if(a < b) swap(a, b); if(a < c) swap(a, c); if(b < c) swap(b, c); printf("%d %d %d\n", a,b,c); }

海丰县18698908293: 有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序输出它们 -
邢响薯蓣: #include<stdio.h>void fun(int *pa,int *pb);int main() { int a,b,c; printf("请输入三个整数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c);fun(&a,&b); fun(&b,&c); fun(&a,&b);printf("三个数由小到大排列为:%d,%d,%d\n",c,b,a); return 0; }//...

海丰县18698908293: 编写程序,使得任意输入的3个整数按从小到大的顺序输出 -
邢响薯蓣: Dim a As Long Dim b As Long Dim c As Long Dim d As Long a = InputBox("请输入第一个整数") b = InputBox("请输入第二个整数") c = InputBox("请输入第三个整数") If a > b Thend = aa = bb = d End If If b > c Thend = cb = cc = dIf a > b Thend = aa = bb = dEnd If End If Print a Print b Print c

海丰县18698908293: 输入三个整数,按由小到大的顺序输出 -
邢响薯蓣: #include int max(int x,int y) { int z; z=(x>y)?x:y; return z; } int min(int x,int y) { int z; z=(xy) {temp=x;x=y;y=temp;} if(x>z) {temp=x;x=z;z=temp;} if(y>z) {temp=y;y=z;z=temp;} s=y; return s; } void function(int m[]) { int a[3],*p_1,*p_2,*p_3,*temp_1,*temp_3; ...

海丰县18698908293: 从键盘任意输入三个整数,按从小到大的顺序输出 -
邢响薯蓣: 汗颜的没错,看来你应该是刚学习吧,看不懂你就把void里内容拷贝下就行了. int main(){ int a,b,c; scanf("%d %d %d",&a,&b,&c); if(a>b) { int x; x=a; a=b; b=x; } if(a>c){ int x; x=a; a=c; c=x; } if(b>c){ int x; x=b; b=c; c=x; } printf("%d %d %d\n",a,b,c); }

海丰县18698908293: 编一个程序:输入3个整数,按由小到大的顺序输出 -
邢响薯蓣: 以上答案输出时是错误的,原因方向是大到小的顺序,而不是小到大的.main() {int number1,number2,number3,temp; printf("please input three numbers:\n"); scanf("%d,%d,%d",&number1,&number2,&number3); if(number1>number2){...

海丰县18698908293: 用C语言描述对于输入的任意三个整数,将它们按从小到大的顺序输出? -
邢响薯蓣: 1、输入三个整数x,y,z,请把这三个数由小到大输出. 2、所需要的开头代码,#include "stdio.h"#include "conio.h",预处理命令,表示程序包含conio.h库文件conio.h库文件定义了通过控制台进行数据输入和数据输出的函数. 3、下面...

海丰县18698908293: C语言中编程,从键盘输入三个整数a b 和c 按照由小到大的顺序输出怎么设置? -
邢响薯蓣: #include<stdio.h>void main(){ int a,b,c,t; printf("请输入三个整数:a b c\n"); scanf("%d%d%d",&a,&b,&c); if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("排序后的三个整数为:%d,%d,%d\n",a,b,c);}C语言...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网