前提・実現したいこと
約 1000 人分の身長と体重のデータを2次元配列変数に読み込み、身長が小さい順 に並べ替える。ただし、身長と体重のデータはセットで並べ替えること
発生している問題・エラーメッセージ
owata.c: 関数 ‘main’ 内:
owata.c:19:22: 警告: assignment to ‘int’ from ‘int *’ makes integer from pointer without a cast [-Wint-conversion]
19 | temp = h[i];
| ^
owata.c:20:22: エラー: assignment to expression with array type
20 | h[i] = h[i+1];
| ^
owata.c:21:24: エラー: assignment to expression with array type
21 | h[i+1] = temp;
| ^
該当のソースコード
C言語
1#include<stdio.h> 2int main(void) 3{ 4 int i, j, N; 5 int h[1000][2], temp; 6 for(i=0; scanf("%d",&h[i])!=EOF && i<1000; i++) 7 { 8 //printf("%d\n",h[i]); 9 } 10 N = i; 11 12 for(j=N-1; j>0; j--) 13 { 14 for(i=0; i<j; i++) 15 { 16 printf("%d %d\n", i, i+1); 17 if(h[i]>h[i+1]) 18 { 19 temp = h[i]; 20 h[i] = h[i+1]; 21 h[i+1] = temp; 22 } 23 } 24 } 25 for(i=0; i<N; i++) 26 { 27 printf("%6.1d", h[i]); 28 } 29 30 for(i=0;i<1000;i++) 31 { 32 for(j=0;j<2;j++) 33 { 34 h[i][j]= (i+1)*(j+1); 35 } 36 } 37 for(i=0;i<1000;i++) 38 { 39 40 for(j=0;j<2;j++) 41 { 42 43 printf("%3d",h[i][j]); 44 } 45 46 printf("\n"); 47 48 } 49return 0; 50}
試したこと
配列変数はできるのですが、データを2次元配列変数に読み込むことと小さい順に並び替え方が分かりません
補足情報(FW/ツールのバージョンなど)
while ( scanf( “%d”, &a ) != EOF )
回りくどいやり方になってしまうかもしれませんがこれを使って教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/19 18:33
2020/07/20 03:27
2020/07/20 03:32