C语言练习题.输入3个整数,按从大到小的次序输出.要求用指针变量来处理3个整数.

输入3个整数,按从大到小的次序输出.要求用指针变量来处理3个整数.

#include<stdio.h>
void main()
{
int i,j,a[3],*p[3],*x;

for(i=0;i<3;i++)
{
p[i]=&a[i];
scanf("%d",&a[i]);
}

for(i=0;i>3;i++)
{
for(j=i;j>2;j++)
{
if(p[j]>p[j+1])
{
x=p[j];
p[j]=p[j+1];
p[j+1]=x;
}
}
}
printf("%d>%d>%d",p[0],p[1],p[3]);
}

帮忙看看那错了!

我帮你下午写一个吧 很简单的 

#include"stdio.h"

void main()

{

void exchange(int *pt1,int *pt2,int*pt3);

int a,b,c,*p1,*p2,*p3;

printf("input 3 numbers:\n");

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

p1=&a;p2=&b;p3=&c;

exchange(p1,p2,p3);

printf("the result is:%d %d %d\n",*p1,*p2,*p3);

}

void exchange(int *pt1,int *pt2,int *pt3)

{

void swap(int *q1,int *q2);

if(*pt1<*pt2) swap(pt1,pt2);

if(*pt1<*pt3) swap(pt1,pt3);

if(*pt2<*pt3) swap(pt2,pt3);

}

void swap(int *q1,int *q2)

{

int temp;

temp=*q1;

*q1=*q2;

*q2=temp;

运行过了,是正确的 结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-29
你的思路很混乱,而且错的地方很多的。不好改,我给你写个程序吧。
#include <stdio.h>
void swap(int *p1,int *p2)
{
int tmp;
tmp=*p1;
*p1=*p2;
*p2=tmp;
}
void sort (int *p1,int *p2,int *p3)
{
if (*p1>*p2)
swap(p1,p2);
if (*p1>*p3)
swap(p1,p3);
if (*p2>*p3)
swap(p2,p3);
}
int main (int argc,char * argv[])
{
int a,b,c;
int *p1=&a,*p2=&b,*p3=&c;
scanf("%d%d%d",p1,p2,p3);
sort(p1,p2,p3);
printf("%d %d %d\n",*p1,*p2,*p3);
return 0;
}
这个程序我已经试过了 ,没问题的。
第2个回答  2012-03-28
p[ ]是一个指针数组,里面存的是地址。*p[i]是取出地址里面存的内容,既你输入的整数。第三个for循环比较的时候要用*p[i],因为要比较的是存在这个地址里面的数的大小,而不是比较地址的大小。第三个for循环中还有其他一些错误,详情请看代码。
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i,j,a[3],*p[3],*x;

for(i=0; i<3; i++)
{
p[i]=&a[i];
scanf("%d",&a[i]);
}

for(i=0; i<3; i++)
{
for(j=i+1; j<3; j++)
{
if(*p[j]>*p[i])
{
x=p[j];
p[j]=p[i];
p[i]=x;
}
}
}
printf("%d>%d>%d",*p[0],*p[1],*p[2]);

return 0;
}
第3个回答  2012-03-28
我突然发现。。。这个是08年的题目啊。。。
你就搞个指针 指向数组 然后输入数组
然后就用起泡法 排序 再来个判断语句 决定从小到大还是从大到小
第4个回答  2008-09-04
输出的应该是*p[0],*p[1],*p[3].本回答被提问者采纳

C语言的编程题:输入三个整数,按从大到小的顺序输出
include <stdio.h> main(){ int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x<y){t=x;x=y;y=t;} if(x<z){t=z;z=x;x=t;} if(y<z){t=y;y=z;z=t;} printf("%d %d %d\\n",x,y,z);}

C语言编程题,输入三个整数,按从大到小的顺序输出
printf("请输入三个整数:\\n");scanf("%d,%d,%d",&a,&b,&c);if(a<b){\/\/完成a和b值的交换,a里面放最大值 t=a;a=b;b=t;} if(a<c){\/\/完成a和c值的交换,a里面放最大值 t=a;a=c;c=t;} if(b<c){\/\/完成b和c值的交换,a里面放最大值 t=b;b=c;c=t;} printf("%...

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

编写程序,输入3个字符串,比较它们的大小,并将它们按由小到大的顺序输 ...
1、首先打开vc6.0, 新建一个项目。 2、添加头文件。 3、添加main函数。 4、定义x, y, z, t。 5、使用scanf给定义的变量赋值。 6、使用printf输入。 7、运行程序,可以看到输入的3个字符串,比较它们的大小,并将它们按由小到大的顺序输出。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服...

C语言编程 输入3个整数,按降序(从大到小的顺序)输出。
\/ 输入三个整数(空格隔开) : 12 45 32 45 32 12 \/ include <stdio.h> void Exchange(int *a,int *b) { int t = *a;a = *b;b = t;} int main() { int a,b,c;printf("输入三个整数(空格隔开) : ");scanf("%d%d%d",&a,&b,&c);if(a < b) Exchange(&a,&b); \/...

用指针实现输入3个整数,找出最大的数输出
int main(int argc,char*argv[]){ float a,b,c,*pa=&a,*pb=&b,*pc=&c,max;scanf("%f,%f,%f",pa,pb,pc);if(*pa>*pb){ max=*pa;printf("if1%f\\n",max);} else { max=*pb;printf("else\\n");} if(*pc>max){ max=*pc;printf("if2\\n");} printf("max=%f\\n",...

C语言 用指针方法 输入3个字符串 按由小到大顺序输出
可以使用三个数组,或者是一个二维数组来存储字符串,同时定义一个指针数组,指向三个字符串的首地址。然后对指针数组进行排序。代码如下:include <stdio.h>#include <string.h>int main(){ char buf[3][100]; char *p[3] = {buf[0],buf[1], buf[2]}; int i,j; for(i ...

c语言输入3个整数,输出最大的数是多少。
、`num2`和`num3`用于存储用户输入的三个整数。使用``函数提示用户输入三个整数,并用`scanf`函数读取这三个整数。接着,通过比较这三个数,使用`if`语句找出并存储最大的数在变量`max`中。最后,`printf`函数输出最大的数。运行这个程序,输入三个整数后,它会输出这三个数中最大的那个。

c语言输入3个整数,输出最大的数是多少。
最后,输出三个数中最大的数:c printf("三个数中最大的数为:%d", max);return 0;} 除了基本的输入和比较,C语言还具备一些特点,如简洁的语言结构、结构化的控制语句、丰富的数据类型和运算符等,这些使得C语言在编写程序时具有高度灵活性和效率。例如,C语言允许使用指针操作内存,提供高效的...

中南大学c语言试题
1. C语言规定,标识符中的字母一般区分大、小写。2. 控制台标准输入设备一般是指键盘。3. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。4. 循环体中continue语句的作用是结束整个循环的执行。5. 关系表达式的值是0或1。6. 若有说明:int a[3][4]={0},则只有元素a[0][0]可...

相似回答