标题:求助:在我的基础上帮改一下。
只看楼主
form521
Rank: 1
来 自:西安
等 级:新手上路
帖 子:162
专家分:4
注 册:2006-12-21
 问题点数:0 回复次数:15 
求助:在我的基础上帮改一下。
#include<stdio.h>   这是一段求最大数的代码,排序从大到小怎么写呢?
int main(void)       能不能在我的代码基础上帮改一下。这里谢谢了。
{
    int a[5],i,max;
    for(i=1;i<6;i++)
     scanf("%d",&a[i]);
     max=a[0];
     for(i=1;i<6;i++)
     {
      if(max<a[i])
       max=a[i];
     }
     printf("max=%d\n",max);
     system("pause");
     return 0;
}
搜索更多相关主题的帖子: 基础 int void max 
2008-04-08 10:27
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 
for(i=1;i<6;i++)  /*由于你定义的是int a[5],所以数组的下标最大为4*/
     scanf("%d",&a[i]);

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2008-04-08 10:41
论坛元老
Rank: 1
等 级:新手上路
帖 子:812
专家分:0
注 册:2008-3-31
得分:0 
回复 2# 的帖子
恩  同意

怎么不可以用Discuz代码呢!
2008-04-08 10:42
form521
Rank: 1
来 自:西安
等 级:新手上路
帖 子:162
专家分:4
注 册:2006-12-21
得分:0 
数组的下标最大为4?怎么解释?

人生就是个死循环,退出这个循环的条件是系统停止。
2008-04-08 10:59
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
得分:0 
把你的for(i=1;i<6;i++)改for(i=0;i<5;i++)

" border="0" />
2008-04-08 11:15
form521
Rank: 1
来 自:西安
等 级:新手上路
帖 子:162
专家分:4
注 册:2006-12-21
得分:0 
for(i=1;i<6;i++)
这样写的也同样可以输出正确的结果。为什么要改成那样呢?
 for(i=1;i<=5;i++)
这样写也可以输出正确的结果。
难道是因为 max=a[0];这条语句吗?

人生就是个死循环,退出这个循环的条件是系统停止。
2008-04-08 12:47
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
得分:0 
这样也正确?...
数组下标是从a[0]开始的.
a[0]没有初始化,它们的值是随机的.

#include<stdio.h>   
int main(void)      
{
    int a[5],i,max;//数组a有5个元素...
    for(i=0;i<5;i++)//从第0位到第4位元素输入.这不正是5个元素么?
     scanf("%d",&a[i]);
     max=a[0];
     for(i=1;i<5;i++)//从第1位元素(数组的第2个元素)开始跟max比较
     {
      if(max<a[i])
       max=a[i];
     }
     printf("max=%d\n",max);
     system("pause");
     return 0;
}

[[it] 本帖最后由 meteor57 于 2008-4-8 13:07 编辑 [/it]]
2008-04-08 13:05
form521
Rank: 1
来 自:西安
等 级:新手上路
帖 子:162
专家分:4
注 册:2006-12-21
得分:0 
请问要从大到小排序怎么写呢?

人生就是个死循环,退出这个循环的条件是系统停止。
2008-04-08 13:20
roger123
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-10-8
得分:0 
#include<stdio.h>   
#include<stdlib.h>
int main(void)      
{
    int a[5],i,s,max;
    for(i=0;i<5;i++)
     scanf("%d",&a[i]);
     max=a[0];
     for(i=0;i<5;i++)//???ó????????
     {
         for(int j=i+1;j<5;j++)
            if(a[i]<a[j])
            {
                s=a[j];
                a[j]=a[i];
                a[i]=s;
            }
  
     }
     for(i=0;i<5;i++)
         printf("%d ",a[i]);
     system("pause");
     return 0;
}
编译过的,应该没问题了
2008-04-08 13:36
易醉人
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2008-4-5
得分:0 
冒泡法 或者 选择法
选择法
main()
{
 int i,j,t,max,max_j,a[5];
 for(i=0;i<5;i++)
  scanf("%d",a[i]);
 for(j=0;j<4;j++)
 {
  max=a[j];max_j=j;
  for(i=0;i<5;i++)
    if(a[i]>max)
     {max=a[i];max_j=i;}
   t=a[max_j];a[max_j]=a[j];a[j]=t;
 }
 for(i=0;i<5;i++)
  printf("%d",a[i]);
 printf("\n");
}
冒泡法
#include<stdio.h>
main(void)
{
 int a[5],i,max,j,t;
 for(i=0;i<5;i++)
  scanf("%d",&a[i]);
 for(i=0;i<5;i++)
  for(j=0;j<5-i;j++)
  if(a[j]>a[j+1])
  {
    t=a[j];a[j]=a[j+1];a[j+1]=t;
  }
 for(i=0;i<5;i++)
  printf("%d",a[i]);
 printf("\n");
 return 0;
}
2008-04-08 13:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-207687-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064714 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved