• 全部
  • 问答

麻烦各位前辈指点一下:C语言一维数组排列

tiana_fengle 2010-02-23 05:51:14
//输入5个数并存储在数组num中,运用选择排序从大到小排列出来;
#include<stdio.h>
main()
{
int num[5],i,j,max,temp;

printf("Input 5 integer:\n");
for(i=0;i<5;i++)
scanf("%d",&num[i]);

for(i=0;i<4;i++)
{
max=i;
for(j=i+1;j<5;j++)
if(num[j]>num[max])
max=j;
temp=num[max]; //开始
num[max]=num[i];
num[i]=temp;//结束
}
for(i=0;i<5;i++)
printf("%d\t",num[i]);
}

问题: 为什么if(num[j]>num[max])
{ max=j;
temp=num[max];
num[max]=num[i];
num[i]=temp;} 这么写 会出现错误呢,为什么不能加大括号呢?希望各位前辈能指点一下。
...全文
92 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhouli669826 2011-06-09
不错 学习了
回复
tiana_fengle 2010-02-23
我知道不明白的原因了,谢谢各位热心的帮助~~
回复
tiana_fengle 2010-02-23
额 我记得老师曾说过 当控制语句只为一条时 可省略{}的~~
回复
mostmark 2010-02-23
你为什么要那么写呢?你认为的是什么?
回复
light_power 2010-02-23
不过,你这个排序函数写的有问题。你想用冒泡法吧?
回复
light_power 2010-02-23
你写错了。漏掉第二个for循环的结束}了
应这样:#include <stdio.h>
void main()
{
int num[5],i,j,max,temp;

printf("Input 5 integer:\n");
for(i=0;i <5;i++)
scanf("%d",&num[i]);

for(i=0;i <4;i++)
{
max=i;
for(j=i+1;j <5;j++)
{
if(num[j]>num[max])
max=j;
temp=num[max]; //开始
num[max]=num[i];
num[i]=temp;//结束
}
}
for(i=0;i <5;i++)
printf("%d\t",num[i]);
}
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2010-02-23 05:51
社区公告
暂无公告