| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1298 人关注过本帖
标题:呜呜!!!人要崩溃了
取消只看楼主 加入收藏
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
 问题点数:0 回复次数:6 
呜呜!!!人要崩溃了
想了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
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
看完了就是不知道
a[k]=temp;这句有什么用
2008-01-05 12:09
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
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
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
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
#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   它们分别对应  a[0]   a[1]    a[2]    a[3]
首先i=0, k=i所以
就是a[0] > a[1]    对应  45比12     得k=j;         k=1
继续a[1]>   a[2]    对应  45比11     得k=j;         k=2
第二个for第一轮循环完成;然后到
temp=a[i]    a[i]=a[0]
a[i]=a[k]        a[k]=11
a[k]=temp
进行第一个for的第二次循环
i=1;k=i
.........................


a[k]=temp
还是没发现有什么用
2008-01-05 13:24
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
循环完一次后。第二个a[k]   是用a[k]=  45      还是用   k=i  i=2   ,a[k]=a[2]  呢??
2008-01-05 15:44
快速回复:呜呜!!!人要崩溃了
数据加载中...
 
   



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

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