| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1724 人关注过本帖
标题:大佬们帮看看,头快炸了,为什么不能按顺序排列,第一个下标一直在前面,图 ...
只看楼主 加入收藏
一只小萌新
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-12-16
结帖率:75%
收藏
已结贴  问题点数:15 回复次数:6 
大佬们帮看看,头快炸了,为什么不能按顺序排列,第一个下标一直在前面,图我放我头像了,下面是代码,感谢大佬
#define _CRT_SECURE_NO_WARNINGS

#include "stdio.h"
void main()
{
    int list[11] = { 1,2,3,4,5,7,9,11,22 };
    int i, j, temp;
    for (i = 0 ;i<10; i++)
    {
        //printf("%d\n",list[i]);
        for (i = 0; i < 9; i++)
        {
            for (j = 0; j < 10 - 1 - i; j++)
            {
                if (list[i] > list[i + 1])
                {
                    temp = list[j];
                    list[j] = list[j + 1];
                    list[j + 1] = temp;


                }
            }
        }

    }

    for (int t = 0; t < 10; t++)
        printf("%d\n",list[t]);

}
搜索更多相关主题的帖子: 代码 list 顺序 for int 
2021-12-28 22:41
一只小萌新
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-12-16
收藏
得分:0 
那个下标数不要在意,我打错了,应该是10,不是11
2021-12-28 22:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:15 
为什么要贴图,难道贴
输出为:
2
1
3
4
5
7
9
11
22
0
不更好吗?倡议大家学学知乎,贴图的提问一律不答。

程序代码:
#include <stdio.h>

int main( void )
{
    int list[] = { 1,2,3,4,5,7,9,11,22 };

    const size_t n = sizeof(list)/sizeof(*list);
    for( size_t i=0; i+1<n; ++i )
    {
        for( size_t j=0; j+1<n-i; ++j )
        {
            if( list[j] > list[j+1] )
            {
                int temp = list[j];
                list[j] = list[j+1];
                list[j+1] = temp;
            }
        }
    }

    for( size_t i=0; i!=n; ++i )
        printf( "%d\n", list[i] );
}
2021-12-29 08:26
一只小萌新
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-12-16
收藏
得分:0 
回复 3楼 rjsp
我不懂,这次我知道了,谢谢
2021-12-29 13:34
bobodianzi
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:10
注 册:2022-11-9
收藏
得分:0 
在你的基础上,没咋改动,你看看


#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
int main()
{
    int list[11] = { 1,2,3,4,5,7,9,11,22 };
    int i, j, temp;
   
    for (int t = 0; t < 9; t++)
    {
        printf("%d\n",list[t]);
        for (i = 0; i < 10; i++)
        {
            for (j = 0; j < 11; j++)
            {
                if (list[j] > list[j + 1])
                {
                    temp = list[j + 1];
                    list[j + 1] = list[j];
                    list[j + 1] = temp;
                }
            }
        }   
    }               
}

[此贴子已经被作者于2022-11-12 12:48编辑过]

2022-11-12 12:45
bobodianzi
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:10
注 册:2022-11-9
收藏
得分:0 
这不好了吗?
2022-11-12 12:47
shq96
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-11-18
收藏
得分:0 
这不就是 用j循环比大小那里  应该用if(list[j] > list[j+1])么
2022-11-18 17:10
快速回复:大佬们帮看看,头快炸了,为什么不能按顺序排列,第一个下标一直在前面 ...
数据加载中...
 
   



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

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