前提・実現したいこと
1~10 の数値を入力し
1~入力した数値 の自乗を配列に代入します。
その配列を昇順に表示してから
配列を降順にするための代入処理を行って
降順に配列を表示する。
という処理が目的のコードです
発生している問題
1から9を入力した時は求めている実行結果になるのですが 10を入力した時だけ、昇順の配列の表示が10を超えて出力され、途中でプログラムが終了します
該当のソースコード
C
1#include <stdio.h> 2 3int main(void){ 4 int i,j,k,l,work; 5 int n = 0; 6 int v[10]; 7 8 do { /*数値の入力*/ 9 printf("1から10の範囲で整数を入力:"); 10 scanf("%d", &n); 11 if(n < 1 || n > 10) 12 printf("範囲外です。再度入力してください。\n"); 13 } while(n < 1 || n > 10); 14 15 for(i = 0; i <= n; i++){ /* 配列の代入 */ 16 v[i] = i*i; 17 } 18 19 printf("1から%dまでの自身のべき乗数は\n",n); 20 21 for(j = 1; j <= n; j++){ /* 配列の表示 */ 22 printf("v[%d]=%d\n", j,v[j]); 23 } 24 putchar('\n'); 25 26 printf("要素を逆順にすると\n"); 27 28 for(k = 0; k <= n/2; k++){ /* 逆順に配列の代入*/ 29 work = v[k]; 30 v[k] = v[n-k]; 31 v[n-k] = work; 32 } 33 34 for(l = 0; l < n; l++){ /* 逆順に配列の表示 */ 35 printf("v[%d]=%d\n", l+1,v[l]); 36 } 37 38 return 0; 39}
補足情報(FW/ツールのバージョンなど)
コンパイラはgccを使っています
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。