5つの整数a0〜a4をキーボードから入力し、すべての組み合わせの2組の数同士の掛け算ai×aj(i.j=0.1.2.3.4)を計算するプログラムを作成せよ
scanfを用いて値を入力することはできたんですが、掛け算の表示の仕方がわかりません。
よろしくお願いします
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
scanfは色んな意味で危険な関数なのでfgetsを使いましょう。
表示結果を表のようにしました。
C
1#include <stdio.h> 2#include <stdlib.h> 3 4#define BUFSIZE 256 5#define MAX_NUMBER 5 6 7int main(void) 8{ 9 char buf[BUFSIZE]; 10 int a[MAX_NUMBER]; 11 int i,j; 12 13 for(i = 0; i < MAX_NUMBER; i++){ 14 fgets(buf,sizeof(buf),stdin); 15 a[i] = atoi(buf); 16 } 17 18 for(i = 0; i < MAX_NUMBER + 1; i++){ 19 for(j = 0; j < MAX_NUMBER + 1; j++){ 20 if(i == 0 && j == 0){ 21 printf(" / "); 22 } 23 else if(i == 0){ 24 printf("%2d ",j); 25 } 26 else if(j == 0){ 27 printf("%2d ",i); 28 } 29 else{ 30 printf("%2d ",a[i - 1] * a[j - 1]); 31 } 32 } 33 printf("\n"); 34 } 35 36 return 0; 37}
<入力>
1 2 3 4 5
<結果>
/ 1 2 3 4 5 1 1 2 3 4 5 2 2 4 6 8 10 3 3 6 9 12 15 4 4 8 12 16 20 5 5 10 15 20 25
投稿2018/06/06 09:47
退会済みユーザー
総合スコア0
0
「すべての組み合わせの2組の数同士の掛け算」とありますので、素直に二重ループを書くのが手っ取り早いかと思います。
C
1int a[ 5 ]; 2 3/* ここでa[0]~a[4]をscanfする */ 4 5for( int i = 0; i < 5; i++ ) { 6 7 for( int j = 0; j < 5; j++ ) { 8 9 printf( "a%d * a%d = %d\n", i, j , a[ i ] * a[ j ] ); 10 11 } 12 13}
a0~a4は配列にした方が書きやすかったので変更しました。
どうしても個別の変数にしたければ、a[ i ]やa[ j ]の部分を書き換える必要があります。
// 以下、補足です。
a0~a4を個別の変数にするなら、下記のようにすれば良いかと思います。
C
1int a0, a1, a2, a3, a4; 2 3/* ここでa0~a4をscanfする */ 4 5for( int i = 0; i < 5; i++ ) { 6 7 for( int j = 0; j < 5; j++ ) { 8 9 int x; 10 switch( i ) { 11 12 case 0: x = a0; break; 13 case 1: x = a1; break; 14 case 2: x = a2; break; 15 case 3: x = a3; break; 16 case 4: x = a4; break; 17 18 } 19 20 int y; 21 switch( j ) { 22 23 case 0: y = a0; break; 24 case 1: y = a1; break; 25 case 2: y = a2; break; 26 case 3: y = a3; break; 27 case 4: y = a4; break; 28 29 } 30 31 printf( "a%d * a%d = %d\n", i, j , x * y ); 32 33 } 34 35}
投稿2018/06/06 09:23
編集2018/06/06 09:40総合スコア298
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。