全ての要素が1の10行10列の行列を命令によってその要素のいくつかを0にして、すべての要素の合計を数えるプログラムを作りたいのですが、間違った結果が出てしまいます。どこが間違っているのか教えてください。
lang
1コード#include <stdio.h> 2 3void order(int state[][], int n,int c, int s, int e){// nが1ならc列のs行からe行に0を代入し、2ならc行のs列からe行に0を代入する 4 int i; 5 if(n == 1){ 6 for(i = s; i <= e ; i++){ 7 state[c][i] = 0; 8 } 9} 10 else if(n == 2){ 11 int i; 12 for(i = s; i <= e ; i++){ 13 state[i][c] = 0; 14 } 15 } 16 else{} 17} 18 19void execute(int state[][], int a){// aの値の数だけorderを実行する 20 int i; 21 int n, c, s, e; 22 23 for(i = 1; i <= a; i++){ 24 scanf("%d%d%d%d", &n, &c, &s, &e); 25 order(state , n, c, s, e); 26 } 27} 28 29main(){ 30 int a; 31 int state[10][10]; 32 int i; 33 int j; 34 int sum = 0; 35 for(i = 0; i < 10; i++ ){ 36 for( j = 0; j < 10; j++){ 37 state[i][j] = 1; 38 } 39 } 40 41 scanf("%d", &a ); 42 execute(state, a); 43 for(i = 0; i < 10; i++ ){ 44 for( j = 0; j < 10; j++){ 45 sum = sum + state[i][j]; 46 } 47 } 48 printf("%d",sum); 49}
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。