【不会做神马都是浮云啊】只是输入3个整数,由小到大顺序输出(需用指针方法写程序)解决方案
【不会做神马都是浮云啊】只是输入3个整数,由小到大顺序输出(需用指针方法写程序)
[code=C/C++][/code]main()
{int a[3],*p=a,i;
puts("please input three number:");
for(i=0;i<3;i++)
scanf("%d",p++);
puts("the three number are:");
for(i=0,p=a;i<3;i++)
{printf("%d",*p);p++;}
sort(p,3);
}
sort(int x[],int n)
{int i,k;
if(x[0]>x[1]) {k=x[0];x[0]=x[1];x[1]=k;}
if(x[0]>x[2]) {k=x[0];x[0]=x[2];x[2]=k;}
if(x[1]>x[2]) {k=x[1];x[1]=x[2];x[2]=k;}
puts("the new number are:");
for(i=0;i<n;i++)
printf("%d",&x[i]);
}
------解决方案--------------------
唉,贴一下吧:
#include<stdio.h>
void swap(int *p,int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
int main(void)
{
int a,b,c;
printf("please input three numbers:\n");
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);
return 0;
}
楼主还是要注意了:sort函数没有声明!!!
注意代码的规范
------解决方案--------------------
[code=C/C++][/code]main()
{int a[3],*p=a,i;
puts("please input three number:");
for(i=0;i<3;i++)
scanf("%d",p++);
puts("the three number are:");
for(i=0,p=a;i<3;i++)
{printf("%d",*p);p++;}
sort(p,3);
}
sort(int x[],int n)
{int i,k;
if(x[0]>x[1]) {k=x[0];x[0]=x[1];x[1]=k;}
if(x[0]>x[2]) {k=x[0];x[0]=x[2];x[2]=k;}
if(x[1]>x[2]) {k=x[1];x[1]=x[2];x[2]=k;}
puts("the new number are:");
for(i=0;i<n;i++)
printf("%d",&x[i]);
}
------解决方案--------------------
唉,贴一下吧:
#include<stdio.h>
void swap(int *p,int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
int main(void)
{
int a,b,c;
printf("please input three numbers:\n");
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);
return 0;
}
楼主还是要注意了:sort函数没有声明!!!
注意代码的规范
------解决方案--------------------
- C/C++ code
#include <stdio.h> sort(int x[],int n) { int i,k; if(x[0]>x[1]) {k=x[0];x[0]=x[1];x[1]=k;} if(x[0]>x[2]) {k=x[0];x[0]=x[2];x[2]=k;} if(x[1]>x[2]) {k=x[1];x[1]=x[2];x[2]=k;} puts("the new number are:"); for(i=0;i<n;i++) printf("%d",x[i]);//不是打印地址 } main() { int a[3],*p=a,i; puts("please input three number:"); for(i=0;i<3;i++) scanf("%d",p++); puts("the three number are:"); for(i=0,p=a;i<3;i++) { printf("%d",*p); p++; } puts(""); sort(a,3); //p已经后移,不是指向a的开始位置 }
------解决方案--------------------
把 sort放main前边定义嘛,然后输出printf("%d",&x[i]); 时注意,不必取地址符。
就是 printf("%d",x[i]);就好 ,刚学的很容易把输入输出的格式搞错~~ 加油