| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1029 人关注过本帖
标题:将一个4*4二维整数数组按每行数据之和升序排列后输出。(注:计算机二级考试 ...
只看楼主 加入收藏
小豪没烦恼
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-11-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
将一个4*4二维整数数组按每行数据之和升序排列后输出。(注:计算机二级考试下午试题)
4. 二维数组按每行数据之和升序
【问题描述】将一个4*4二维整数数组按每行数据之和升序排列后输出。(注:计算机二级考试下午试题)
【输入形式】分行输入4个整数,空格分开
【输出形式】按每行数据之和升序排列后分行输出4个整数,空格分开
【样例输入】
2 2 3 4
9 10 11 12
1 3 5 7
5 10 1 20
【样例输出】
2 2 3 4
1 3 5 7
5 10 1 20
9 10 11 12
【样例说明】输入的二维数组各行的和为11,42,16,36,按升序得11,16,36,42,对应的数组输出就是:
2 2 3 4
1 3 5 7
5 10 1 20
9 10 11 12
提示:
定义数组时多定义一列int a[4][5] 放每行的数据之和。
将第5列排序,交换第5列二个数时同时交换二行。
这是题目
#include<stdio.h>
int main()
{int a[4][5]={0};
int i,j,n;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
scanf("%d",&a[i][j]);}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{a[i][5]+=a[i][j]}
我做到这,求教



搜索更多相关主题的帖子: 之和 升序 数组 输出 整数 
2022-11-13 22:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9051
专家分:54255
注 册:2011-1-18
收藏
得分:20 
“和”相同时呢?
2022-11-14 01:10
得鹿梦鱼
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2025-5-21
收藏
得分:0 

#include <stdio.h>


int main()
{
    int number_s[4][4] = {
        {2,2,3,4},
        {9,10,11,12},
        {1,3,5,7},
        {5,10,1,20},
    };
    int    number_num = sizeof(number_s) / sizeof(number_s[0]);//取出这个二维数组有多少个元素
    //这里应该填写nuber_num 就是元素数量 但是vs2022不支持边长数组 可以申请申请堆内存 但是感觉必要直接写死知道是4
    int number_value[4] = {0};//初始化为0
    int temp = 0;
    int temp_value[4] = { 0 };//初始化一个临时数组用来交换
    for (size_t i = 0; i < number_num; i++)
    {
        for (size_t j = 0; j < number_num; j++)
        {
            printf( "%d ", number_s[i][j]);
            number_value[i] = number_value[i] + number_s[i][j];//在这里把和都算出来放到value数组里面 然后判断value数组 来进行二维数组的排序

        }
        printf("number_value %d \n",number_value[i]);
    }
    for (size_t i = 0; i < number_num-1; i++)
    {
        if (number_value[i]> number_value[i+1])
        {
            for (size_t j = 0; j < number_num; j++)
            {
                temp_value[j] = number_s[i + 1][j];//这样就把42对应的数组放到了临时数组
                number_s[i + 1][j] = number_s[i][j];
                number_s[i][j] = temp_value[j];
               
            }
            temp = number_value[i + 1];
            number_value[i + 1] = number_value[i];
            number_value[i] = temp;
        }
        printf("number_value %d \n", number_value[i]);


    }
    //排序完成的打印
    for (size_t i = 0; i < number_num; i++)
    {
        for (size_t j = 0; j < number_num; j++)
        {
            printf("%d ", number_s[i][j]);


        }
        printf(" \n");
    }


    return 0;
}
3 天前 10:22
快速回复:将一个4*4二维整数数组按每行数据之和升序排列后输出。(注:计算机二 ...
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018224 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved