题目:输入三个整数x,y,z,请把这三个数由小到大输出。

我是这么编的#include<stdio.h>intmain(){inti,a[3],j,t;printf("给老子输入3个数:");for(i=0;i<3;i++)sc... 我是这么编的
#include<stdio.h>int main(){ int i,a[3],j,t; printf("给老子输入3个数:"); for(i=0;i<3;i++) scanf("%d",&a[i]); for(j=0;j<2;j++) for(i=0;i<2-j;i++) if(a[i]>a[i+1]) t=a[i];a[i]=a[i+1];a[i+1]=t; for(i=0;i<3;i++) printf("%d\n",&a[i]); return 0;
}为什么结果是这样的
展开
 我来答
貌似風輕
2013-05-05 · TA获得超过7280个赞
知道大有可为答主
回答量:1672
采纳率:94%
帮助的人:704万
展开全部
printf("%d\n",&a[i]);
这句写错了,&是取地址符,你这样输出的是a[i]的地址,而不是a[i]的值
printf("%d\n",a[i]);就可以了
还有你的 if(a[i]>a[i+1])
之后 t=a[i];a[i]=a[i+1];a[i+1]=t;这三句要用大括号括起来,不然会默认只有 t=a[i];在if内部
if(a[i]>a[i+1])
{ t=a[i];a[i]=a[i+1];a[i+1]=t;}
梦想已凋零
2013-05-05
知道答主
回答量:13
采纳率:0%
帮助的人:4.3万
展开全部
试试这个
for(j=0;j<2;j++)
for(i=j;a[i]!='\0';i++)
if(a[j]>a[i])
t=a[i];a[i]=aj];a[j]=t;
追问
不行啊!输出的还是上面那个图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
My_Persistence
2013-05-05 · TA获得超过3468个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:438万
展开全部
你的if语句应是{ t=a[i];a[i]=a[i+1];a[i+1]=t; },少了大括号,再运行试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式