| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 523 人关注过本帖
标题:小问题 请赐教!
只看楼主 加入收藏
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
收藏
 问题点数:0 回复次数:4 
小问题 请赐教!
题目 输入n个整数,将其中最小者与第一个数对调,最大
者与最后一个数对调

#include "stdio.h"
main()
{int min,max,n,j,i,a[10];
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
 max=a[0];
 min=a[9];
for(n=0;n<=9;n++)
if(a[n]>max)
 {max=a[n];
 a[n]=a[0];
 a[0]=max;}
else if (a[n]<min)
 {min=a[n];
 a[n]=a[9];
 a[9]=min;}
for(j=0;j<=9;j++)
printf("%d\n",a[j]);
getch();
}



有点小问题, 请赐教
搜索更多相关主题的帖子: include 
2005-08-10 17:42
wetp
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2005-7-18
收藏
得分:0 
你的程序只实现了将最小数放在第一个,最大数放在最后,而中间的数可能就跟原来大不一样了.
#include <stdio.h>
main()
{
  int min,max,n,t,j,i,a[10];
  for (i=0;i<=9;i++)
    scanf("%d",&a[i]);
  min=max=a[0];
  for (i=1;i<10;i++)
    {
     if (min>a[i])
       {
        min=a[i];
        j=i;
       }
    }
  min=j;
  for (i=1;i<10;i++)
    {
     if (max<a[i])
       {
        max=a[i];
        j=i;
       }
    }
  max=j;
  t=a[0];
  a[0]=a[min];
  a[min]=t;
  t=a[9];
  a[9]=a[max];
  a[max]=t;
  for (i=0;i<10;i++)
     printf("%-3d",a[i]);
  getch();
}

宠辱不惊,闲看庭前花开花落;去留无意,漫看天外云卷云舒.
2005-08-10 22:07
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
收藏
得分:0 
min=max=a[0];
a[0]=a[min];
这两句怎么理解啊 ?
有错误没?

2005-08-11 09:10
蕴涵的黎明
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2005-8-8
收藏
得分:0 
min=max=a[0];这句是给min和max附初值~~~~方便以后进行比较;
a[0]=a[min];是和下面一同实现min与a[0]对调;
这样就实现了最大与最小的在首尾~~~而其他的说就不变了

2005-08-11 10:49
wetp
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2005-7-18
收藏
得分:0 
开始min max分别存放10个元素中的最小、最大值,初值为第一个元素。
后面我分别用min=j;max=j 实际上这时min max中存放的上最小 最大值的下标了
你可以运行看看

宠辱不惊,闲看庭前花开花落;去留无意,漫看天外云卷云舒.
2005-08-11 10:51
快速回复:小问题 请赐教!
数据加载中...
 
   



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

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