| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1298 人关注过本帖
标题:呜呜!!!人要崩溃了
只看楼主 加入收藏
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
 问题点数:0 回复次数:15 
呜呜!!!人要崩溃了
想了3天头都大了
#include "stdio.h"
#define N 4
main()
{
     int i,j,k,temp;
     int a[N];

     for (i=0;i<N;i++)
          scanf("%d",&a[i]);
     for (i=0;i<N-1;i++)
     {
          k=i;
          for(j=i+1;j<N;j++)
          {
          if(a[k]>a[j])
          k=j;
          }
          temp=a[i];
          a[i]=a[k];
          a[k]=temp;   /*这个赋值不要又不行,要又不知道用来干吗的?*/

          printf("a[i]=%d\n",a[i]);
          printf("a[k]=%d\n",a[k]);

       }
for(i=0;i<N;i++)
{
    if(i%10==0)
    printf("\n");
    printf("%5d",a[i]);
 }
 getch();
 }
谁可以用代入具体数据的方法告诉我这个程序是什么运行的。
如:
45 12 11 49

小弟在这里拜谢了
搜索更多相关主题的帖子: include 
2008-01-05 11:52
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
干吗要那样啊?
我不是已经答复了吗
你把我的答复再好好的看看想想
相信你一定能行.
2008-01-05 12:01
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
看完了就是不知道
a[k]=temp;这句有什么用
2008-01-05 12:09
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
temp=a[i];
          a[i]=a[k];
          a[k]=temp;

这3行是一个部分;交换a[i]和a[k]的值

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-05 12:18
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
3楼的朋友;你说的我知道。但是
temp=a[i];
          a[i]=a[k];
          a[k]=temp;
a[i]=a[k];这句是为了后面输出用的;
但是a[k]=temp;有什么用??
2008-01-05 12:31
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
这就好比两个人,三个箱子.
两人各占一箱,(A箱和B箱)  第三个箱是临时箱(TEMP)
要想交换两个箱中的人
就得第一人到临时箱(TEMP)
第二人到(A箱)
第一人再从临时箱到(B)
完成交换

{不能A箱B箱直接交换 明白}

[[italic] 本帖最后由 xianshizhe111 于 2008-1-5 12:41 编辑 [/italic]]
2008-01-05 12:38
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
4楼的这个我也知道不能直接交换。为什么要交换??对整个程序起到什么作用。a[i]=a[k];这句是为了后面输出用的;
但是3楼的朋友;你说的我知道。但是
temp=a[i];
          a[i]=a[k];
          a[k]=temp;
但是a[k]=temp;有什么用??他在整个程序中起到什么作用。我就是这点不明白。
2008-01-05 12:48
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
原帖由 [bold][underline]yuyangtian10[/underline][/bold] 于 2008-1-5 12:31 发表
            printf("a[i]=%d\n",a[i]);
          printf("a[k]=%d\n",a[k]);

 

你不是都要输出吗?

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-05 12:50
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
后面的输出时a[k]是我要研究它怎么运行。做的。  不用这个输出也一样。我要看的是3楼的朋友;你说的我知道。但是
但是a[k]=temp;有什么用??最重要的是后面的排序输出。
for(i=0;i<N;i++)
{
    if(i%10==0)
    printf("\n");
    printf("%5d",a[i]);
}
2008-01-05 12:59
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
送佛送到西天.
为什么交换

如果交换之后你才能把最小的数放在首位
第二轮循环之后把比较最小的数放在第二位,以此类推 ok
2008-01-05 13:04
快速回复:呜呜!!!人要崩溃了
数据加载中...
 
   



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

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