寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C #ITP1_7_C C言語による簡単な表計算

C言語による簡単な表計算です。
行数と列数の要素を持つ表から、行と列の合計を挿入した新しい表を出力するプログラムです。

・問題
 表計算を行う簡単なプログラムを作成します。
 表の行数rと列数c、r × c の要素を持つ表を読み込んで、各行と列の合計を挿入した新しい表を出力するプログラムを作成して下さい。

・入力される値
 最初の行にrとcが空白区切りで与えられます。
 続くr行にそれぞれc個の整数が空白区切りで与えられます。

・期待する出力
 (r+1) × (c+1) の新しい表を出力して下さい。
 各行の隣り合う整数は1つの空白で区切って下さい。
 各行の最後の列としてその行の合計値を、各列の最後の行としてその列の合計値を、最後の行・列に表全体の合計値を挿入して下さい。

・条件
   1 ≤ r, c ≤ 100
   0 ≤ 要素 ≤ 100

僕が作成、提出したコードは、以下のとおりです。

/*
 ITP1_7_C : Spreadsheet
 http://judge.u-aizu.ac.jp/
 C言語による簡単な表計算
 https://neguse-atama.hatenablog.com
*/
#include <stdio.h>
int main(void){
    int i,j,r,c;
    static int s[101][101];
    scanf("%d %d",&r,&c);
    for(i=0;i<=r;i++){
        for(j=0;j<c;j++){
            scanf("%d", &s[i][j]);
            printf("%d ", s[i][j]);
            s[i][c] += s[i][j];
            s[r][j] += s[i][j];
        }
        printf("%d\n",s[i][c]);
    }
    return 0;
}

設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/
ITP1_7_C : Spreadsheet