麻烦各位前辈指点一下: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;} 这么写 会出现错误呢,为什么不能加大括号呢?希望各位前辈能指点一下。
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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]);
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧