C语言,输入3个数,按由小到大的顺序输出,我这是错在哪了

作者&投稿:锁琼 (若有异议请与网页底部的电邮联系)
c语言:输入3个整数,按由小到大的顺序输出(要求用指针)。。~

#include
void main()
{
int a,b,c,x;
int *pa,*pb,*pc;
pa=&a;//这里的指针前的星号去掉就行了
pb=&b;//
pc=&c;//三个都一样
printf("请输入3个整数
");
scanf("%d%d%d",pa,pb,pc);
if(*pa>*pb)
{
x=*pa;
*pa=*pb;
*pb=x;
}
if(*pa>*pc)
{
x=*pa;
*pa=*pc;
*pc=x;
}
if(*pb>*pc)
{
x=*pb;
*pb=*pc;
*pc=x;
}
printf("这3个数由小到大的排列顺序为%d,%d,%d",*pa,*pb,*pc);
}

比较大小时,for要嵌套,你才循环一次。即3和5比较,3小,无变化,然后5和1比较,1小,1到了5前面,但1没和3比较过,1就在3的后面,这时外面就要再嵌套一层for

写了一个通用性的排序程序,对任意个整数排序,只需要改变宏定义中N的值 就行,希望你能采纳!




*p[3]是定义了一个整形指针数组 等同于三个int *的变量
你只做了p[0]=a 另外两个是没赋值的 访问就会出错

int *p;
p=a;
这样就好了,不要int *p[3],因为这是一个指针数组,[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。

函数 xu()中 , 定义的 int *p[3] int型指针数组,在赋值时应该给每个指针赋值 也就是:
p[0] = a[0];
p[1] = a[1];
p[2] = a[2];
不然的话 直接用 *p[i] 是无法取到 a[i] 的值的
也可以这样:
定义int型指针:int *p;
p = a;
这样就可以用p[i] 来使用a[i] 的值了~~~

越界了,当i=2的时候要和a[3]比较


输入三个整数,求最小值是什么编程语言?
C语言输入3个整数求其中的最小值的源代码如下:include <stdio.h> int main(){ int x = 10;int y = 20;int z = 30;int max = (x > y ? x : y) > z ? y : z ;printf("max=%d\\n",max);return 0;}

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语言for循环输入3个数,求和?
include void main(){ int n;printf("input:\\n");scanf("%d",&n);if(n%3==0&&n%5==0)printf("yes\\n");else printf("no\\n");return;}

设置C语言程序,由键盘输入3个数,按降序将其输出
按照如下思路即可:1 定义三个元素的数组;2 输入三个数;3 对数组进行降序排序;4 输出数组。代码:int main(){ int a[3],i,j,t; for(i = 0; i < 3; i ++) scanf("%d",a+i); for(i = 0; i < 2; i ++) for(j = i+1; j < 3; j++) if(a[i...

由键盘任意输入3个数据,找出其中的最大数和最小数 c语言编程序的。还有...
include<stdio.h> int main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);\/\/读取三个整数 if(a>b)max=a;\/\/这两行,从a和b中取较大的数,赋值给max else max=b;if(c>max)max=c; \/\/再考察第三个数,若它更大,就更新max的值为c的值 printf("最大数=%d\\n",max); ...

C语言输入三个整数,计算并输出它们的平均值
int main(void)可以修改成void main。getchar()是为了程序不立刻返回,能够看到屏幕输出的数据,也可以不使用。输入三个整数计算并输出它们的平均值的源代码如下:include<bits\/stdc++.h> using namespace std;int main(){ int a,b,c;cin>>a>>b>>c;cout<<(a+b+c)\/3;return 0;} ...

C语言程序设计 设计一个程序,输入三个整数,求它们的和及平均数。
for(index;index<3;index++){ nums[index] = scan();} printf("您输入的三个数分别是:");int i = 0;for(i;i<3;i++){ printf("%d ",nums[i]);} printf("\\n其中和是: %d \\n",sum(nums[0], nums[1], nums[2]));printf("平均数是: %d \\n",avg(nums[0], nums[1...

C语言中用if语句写出“输入3个实数按代数值大小依次输出”大神帮忙写一...
include<stdio.h>#include<string.h>void main(){int a,b,c;printf("请输入三个实数:\\n");scanf("%d%d%d",&a,&b,&c);if(a>b&&b>c){ printf("从大到小的顺序为%d%d%d\\n",a,b,c);}if(a>b&&c>b){ printf("从大到小的顺序为%d%d%d\\n",a,c,b);}if(b>a&&a>c){ ...

c语言的。。。 输入三个数 输出最大值
但是建议你用int,在main函数里面最后加个return 0;就好。错误2,函数声明应该放在main函数外头,这里放在main函数上面。错误3,字符问题,你的a,b,c不知道用的什么格式,就是这件事困恼了我好久,建议你在纯英文输入环境输入。错误4,max函数里头“if(c>d)d=c:”最后冒号要改成分号。

C语言求平均值:输入三个数,求平均值
include<stdio.h> void main(){ int a,b,c;double d;printf("请输入3个整数:");scanf("%d%d%d",&a,&b,&c);d=(a+b+c)\/3;printf("%lf",d);} C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一...

台儿庄区14712617428: C语言编写程序,将任意3个数按照从小到大的顺序排序. -
示熊凯亭: #include<stdio.h> int main() {int i,j,m;double temp;double a[3];for(m=0;m<3;m++) //输入三个数{scanf("%lf",&a[m]);}for(i=0;i<3;i++) //完成排序{for(j=i;j<3;j++){if(a[j]<a[i]){temp=a[i];a[i]=a[j];a[j]=temp;}}printf("%lf\t",a[i]);//打印结果}printf("\n");return 0; }

台儿庄区14712617428: C语言,输入三数按照从小到大顺序输出 -
示熊凯亭: scanf加取地址& #include <stdio.h> main() {int a,b,c,d;scanf("%d%d%d",&a,&b,&c);if(a>b){d=a;a=b;b=d;}if(b>c){d=b;b=c;c=d;}printf("%d %d %d",a,b,c); }

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

台儿庄区14712617428: C语言如何从键盘输入任意3个数,按从小到大的顺序输出? -
示熊凯亭: 代码1. // 输入3个数,要求按从小到大顺序输出#include int main() { int a,b,c,t; printf("请输入三个数:"); 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("从小到大...

台儿庄区14712617428: 用C语言输入3个整数,怎么按从小到大的顺序输出? -
示熊凯亭: #includevoid f(int* x,int* y,int* z) { int sum=*x+*y+*z; //三个数之和 //求最大数 int tmp=(*x>*y)?*x:*y; int max=(tmp>*z)?tmp:*z; //求最小数 tmp=(*xint min=(tmp//中间的数为sum减去最大数和最小数 int mid=sum-max-min //按从小到大重新赋值 *x=min; *y=mid; *z=max }int main() { int a=10,b=-50,c=20;f(&a,&b,&c);printf("%d %d %d\n",a,b,c);return 0; }

台儿庄区14712617428: C语言:::::.对于输入的任意三个整数,将它们按从小到大的顺序输出. -
示熊凯亭: 1 读入三个数. 2 循环比较大小,令三个数从小到大排序. 3 输出结果. 代码: #include int main() {int a,b,c,t;#define swap(m,n){t = m; m = n; n = t;}//交换值宏.scanf("%d%d%d",&a,&b,&c);//输入三个数.if(a>b) swap(a,b);if(a>c)swap(a,c);//经过以上两步,a为最小值.if(b>c)swap(b,c);//b比c小.printf("%d %d %d\n", a,b,c);//输出结果.return 0; }

台儿庄区14712617428: C语言中怎么把三个整数从小到大排列 -
示熊凯亭: 方法如下:1.从控制台读入三个数; 2.实现三个数从小到大排序: (1)将第一个数作为最小数,依次和第二,三个数进行比较.两次比较重如果有任意一个比第一个小,则将两个数交换 ; (2)在(1)步后,得到第一个数为最小数.再将第二个数与第三个数比较大小后即可实现三个数从小到大排序. 拓展资料 两种常用排序方法: 1.选择排序法:从一列数中,选择第一个作为最小数,依次和后面的数进行比较.如有比第一个数小的数,则交换两个数.最后排到该列数都倒数第二个时,这列数就从小到大排好了顺序. 2.冒泡排序法:思路与选择排序法一致.不同的是,冒泡排序将第一个作为最大数,然后再和该数后的数进行比较.

台儿庄区14712617428: c语言编程的题 “从键盘输入3个数,使其按从小到大的顺序排列输出.” 感谢各位帮忙! -
示熊凯亭: #includevoid sort(int &a,int &b)//对两个数进行排序 { int d; if(a>b) { d=a;a=b;b=d; } } void main() { int a,b,c,d; printf("输入三个数"); scanf("%d%d%d",&a,&b,&c); sort(a,b); sort(a,c); sort(b,c); printf("%d %d %d",a,b,c); }

台儿庄区14712617428: c语言编程: 从键盘任意输入三个数,按照从小到大的顺序输出. -
示熊凯亭: #include<stdio.h> void main() { int a,b,c; int d,e,f,sum; printf("请输入三个整数:\n"); scanf("%d,%d,%d",&a,&b,&c); //分号放错位置了 sum=a+b+c; d=(a>=b)? a:b; d=(d>=c)? d:c; e=(a<=b)? a:b; e=(e<=c)? e:c; f=sum-d-e; printf("%d %d %d\n",d,f,e); }

台儿庄区14712617428: c语言编写程序从键盘输入3个整数,按由小到大输出 -
示熊凯亭: #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); }

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