不枉风来水顺 发表于 2023-11-1 11:05:24

help me

the problem
给定一个矩阵,要求计算并输出该数组的每行每列之和。

输入格式:
第一行为一个正整数n(1<=n<10)。后边是n行,为nXn个整数矩阵,整数间均以一个空格分隔。

输出格式:
具体见样例。其中每个整数包含符号占五位,右对齐,两个数之间隔一个空格。行末无空格。测试用例保证所有整数可以用int型存储。

输入样例:
3
1 2 3
-4 -5 -6
7 8 9

输出样例:
    1   2   3   6
   -4    -5    -6   -15
    7   8   9    24
    4   5   6

my program
#include<stdio.h>

int main()
{
        int n; scanf("%d",&n);//define the n_X_n nums
       
        int nums,sum_line,sum_row;
        int i,j;

        for(i=0;i<n;i++){//n X n
                for(j=0;j<n;j++){
                        scanf("%d",&nums);
                }
        }
       
        for(i=0;i<n;i++){//sum_line
                sum_line = 0;
                for(j=0;j<n;j++){
                        sum_line += nums;
                }
        }
       
        for(j=0;j<n;j++){//sum_row
                sum_row = 0;
                for(i=0;i<n;i++){
                        sum_row += nums;
                }
        }
       
        for(i=0;i<n+1;i++){
                if(i<n){
                        for(j=0;j<n;j++){
                                printf("%5d ",nums);
                        }
                        printf("%5d\n",sum_line);
                }
                else{
                        for(j=0;j<n;j++){
                                if(j=0){
                                        printf("%5d",sum_row);
                                }
                                else{
                                        printf("%6d",sum_row);
                                }
                        }
                        printf("\n");
                }
        }
       
        return 0;
}
       

isdkz 发表于 2023-11-1 11:05:32

你的程序基本上是正确的,只有一个小错误需要修复。在判断if(j=0)的时候,你使用了单个等号= ,这是赋值操作,而不是判断相等的操作。应该使用双等号==来判断是否相等。以下是修复后的代码:

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n); //定义 n_X_n 的矩阵

    int nums, sum_line, sum_row;
    int i, j;

    for (i = 0; i < n; i++)
    {
      //n X n
      for (j = 0; j < n; j++)
      {
            scanf("%d", &nums[ i]);
      }
    }

    for (i = 0; i < n; i++)
    {
      //sum_line
      sum_line[ i] = 0;
      for (j = 0; j < n; j++)
      {
            sum_line[ i] += nums[ i];
      }
    }

    for (j = 0; j < n; j++)
    {
      //sum_row
      sum_row = 0;
      for (i = 0; i < n; i++)
      {
            sum_row += nums[ i];
      }
    }

    for (i = 0; i < n + 1; i++)
    {
      if (i < n)
      {
            for (j = 0; j < n; j++)
            {
                printf("%5d ", nums[ i]);
            }
            printf("%5d\n", sum_line[ i]);
      }
      else
      {
            for (j = 0; j < n; j++)
            {
                if (j == 0)
                {
                  printf("%5d", sum_row);
                }
                else
                {
                  printf("%6d", sum_row);
                }
            }
            printf("\n");
      }
    }

    return 0;
}


修复后的代码将会正确输出每行每列之和。

Mike_python小 发表于 2023-11-1 11:07:58

题目描述:给定一个n x n的矩阵,要求计算并输出该数组的每行每列之和。

输入格式: 第一行为一个正整数n(1<=n<10)。后边是n行,为n x n个整数矩阵,整数间均以一个空格分隔。

输出格式: 具体见样例。其中每个整数包含符号占五位,右对齐,两个数之间隔一个空格。行末无空格。测试用例保证所有整数可以用int型存储。

C++代码如下:


#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;//定义矩阵大小

    int nums, sum_row = {0}, sum_column = {0}; //定义矩阵及行、列之和

    for (int i = 0; i < n; i++)//读入矩阵
      for (int j = 0; j < n; j++)
            cin >> nums;

    for (int i = 0; i < n; i++)//计算每行的和
      for (int j = 0; j < n; j++)
            sum_row += nums;

    for (int j = 0; j < n; j++)//计算每列的和
      for (int i = 0; i < n; i++)
            sum_column += nums;

    for (int i = 0; i < n; i++)//输出结果
    {
      for (int j = 0; j < n; j++)
            printf("%5d", nums);
      printf("%5d\n", sum_row);
    }
    for (int i = 0; i < n; i++)
      printf("%5d", sum_column);

    return 0;
}


这个程序实现了对一个n x n的矩阵,计算并输出该数组的每行每列之和。在代码实现中,首先读入矩阵,然后计算每行的和以及每列的和,并以规定格式输出结果。

需要注意的是,如果使用cin和cout进行输入输出时,需要include <iostream>头文件,并在代码开头添加using namespace std;语句。同时,为了保证输出的整数符号占五位,右对齐,两个数之间隔一个空格,需要使用printf()函数进行输出。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: help me