| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2222 人关注过本帖
标题:选择排序法:十个数按升序输出 为啥我的代码输出的不对
只看楼主 加入收藏
求学11
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-5-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
选择排序法:十个数按升序输出 为啥我的代码输出的不对
#include<stdio.h>
int main()
{
    int a[10];
    int i,j,min;
    printf("输入十个数:\n");
    for(i=0;i<10;i++)
     {
      scanf("%d",&a[i]);
     }
     printf("\n");
     for(i=0;i<10;i++)
     {
         min=i;
         for(j=1;j<11;j++)
          {
              if(a[j]<a[i])
              min=j;
         }
        a[i]=a[min];     
     }
    printf("这十个数按升序排列为:\n");
    for(j=1;j<11;j++)
    {
    printf("%d",a[i]);
    printf("\n");
    }
    return 0;
}
搜索更多相关主题的帖子: min 输出 printf 个数 for 
2020-05-12 19:50
求学11
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-5-12
收藏
得分:0 
运行结果截图
图片附件: 游客没有浏览图片的权限,请 登录注册
2020-05-12 19:51
求学11
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-5-12
收藏
得分:0 
2020-05-12 19:51
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1688
专家分:4262
注 册:2007-12-27
收藏
得分:7 
首先,排序写的不对。
其次,下标用到了10,超界了。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-12 20:25
求学11
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-5-12
收藏
得分:0 
回复 4楼 forever74
请问排序具体哪里错了呢 谢谢
2020-05-12 20:32
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1688
专家分:4262
注 册:2007-12-27
收藏
得分:0 
a[i]=a[min];
那a[i]里面原来的内容不就没了么?
教材上论坛上选择也好冒泡也好都多的是啊。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-12 20:36
云团
Rank: 2
等 级:论坛游民
帖 子:36
专家分:41
注 册:2017-1-9
收藏
得分:7 
程序代码:
#include<stdio.h>
int main()
{
    int a[10];
    int i,j,min;
    int t;        
    printf("输入十个数:\n");
    for(i=0;i<10;i++)
     {
      scanf("%d",&a[i]);
     }
     printf("\n");
     for(i=0;i<10;i++)
     {
         min=i;
         for(j=i+1;j<10;j++)   //数组越界,j的取值范围改回来
          {
              if(a[j]<a[i])
              min=j;
          }
        t=a[i];     //将最小的数与当前数交换
        a[i]=a[min];     
        a[min]=t;
     }
    printf("这十个数按升序排列为:\n");
    for(j=0;j<10;j++)
    {
    printf("%d",a[j]);   //将i改成j
    printf("\n");
    }
    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2020-5-13 00:09编辑过]

2020-05-13 00:07
求学11
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-5-12
收藏
得分:0 
回复 6楼 forever74
谢谢指出 老是忽略这个问题谢谢了
2020-05-13 23:51
qing_yx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:70
注 册:2020-4-26
收藏
得分:7 
#include<stdio.h>
int main(void)
{
    int a[10];
    int i, j, min;
    printf("输入十个数:\n");
    for (i = 0; i<10; i++)
    {
        scanf("%d", &a[i]);
    }
    printf("\n");
   
    for (i = 0; i<10; i++)
    {
        min = i;
        for (j = i+1; j<10; j++)
        {
            if (a[j]<a[i])
                min = j;
        }
        if (min != i)
        {
            int temp = a[min];
            a[min] = a[i];
            a[i] = temp;
        }
    }
    printf("这十个数按升序排列为:\n");
    for (j = 0; j<10; j++)
    {
        printf("%d", a[j]);
        printf("\n");
    }
    return 0;
}
2020-05-14 09:41
快速回复:选择排序法:十个数按升序输出 为啥我的代码输出的不对
数据加载中...
 
   



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

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