解決したいこと:scanf_sで2次元配列に1つ数を入力するごとにスペースを入力してにいき、1行終わるごとにenterを押してループさせる。
下のコードで実行するとenterを押すとループするときにscanf_sが飛ばされてprintfの部分だけが実行されて終わってしまう。
#include<stdio.h> #define T 5 #define L 9 int main(void) { int f[L][T], i, k, avg; int tmp[T] = { 0 }; printf("9人の学生のテストの点数を入力します\n"); for (int i = 0; i < L; i++) { //printf("%d人目の点数を入力 ", i + 1); for (int k = 0; k < T; k++) { scanf_s(" %d", &f[i][k]); } } printf("\n"); for (i = 0; i < T; i++) { for (k = 0; k < L; k++) { tmp[i] = tmp[i] + f[k][i]; } avg = tmp[i] / L; printf("科目%dの平均点は%.1f点です\n", i, avg); } return 0; }
下のコードだとうまくいく
#include<stdio.h> int main(void) { int A[3][4]; int a[4][3]; printf("3行4列行列を入力してください\n"); for (int i=0; i < 3; i++) { for (int k = 0; k < 4; k++) { scanf("%d", &A[i][k]); a[k][i] = A[i][k]; } } printf("転置行列は\n"); for (int i = 0; i < 4; i++) { for (int k = 0; k < 3; k++){ printf("%d ", a[i][k]); } printf("\n"); } return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/18 00:10