回答受付終了まであと7日 回答を投稿すると知恵コイン15枚が追加されます
プログラミング C言語 for
ID非公開さん
2020/8/915:46:55
プログラミング C言語 for
#include <stdio.h>
#define SIZE 10
int main(void)
{
int x[SIZE];
int i, j, w;
for(i=0; i<SIZE; i++) scanf("%d", &x[i]);
for(i=0; i<SIZE-1; i++){
for(j=SIZE-1; j>i; j--){
if(x[j-1]>x[j]){
w=x[j-1];
x[j-1]=x[j];
x[j]=w;
}
}
}
for(i=0; i<SIZE; i++) printf("%d\n", x[i]);
return 0;
}
問題①
8行目の2重forループで、外側のforループでiの値が5であるとき、内側のforループでjの値はどの範囲を動くか。jの取る値を順に全て列挙せよ。
問題②
入力として0,2,4,6,8,1,3,5,7,9を順に与えるとき、コード8行目からの2重forループにおいて、iの値が6に更新された時点での、配列xの要素の値を全て示せ。
補足手も足も出ません!助けてください!
回答投稿
回答
1〜1件/1件中
2020/8/916:04:17
まず、コードを問題の答えを出力するように改造します。
#include <stdio.h>
#define SIZE 10
int main(void)
{
int x[SIZE];
int i, j, w;
for(i=0; i<SIZE; i++) scanf("%d", &x[i]);
for(i=0; i<SIZE-1; i++){
if (i == 6){
int k;
printf("(2)");
for(k=0; k<SIZE; k++) printf(" %d", x[k]);
printf("\n");
}
for(j=SIZE-1; (i==5 && printf("(1) %d\n", j)), j>i; j--){
if(x[j-1]>x[j]){
w=x[j-1];
x[j-1]=x[j];
x[j]=w;
}
}
}
for(i=0; i<SIZE; i++) printf("%d\n", x[i]);
return 0;
}
実行します。
https://ideone.com/5SnaPR
答え
問題①
9,8,7,6,5
問題②
0,1,2,3,4,5,6,7,8,9
-
この返信は取り消されました。
「i<、size1」に関する回答受付中の質問
このカテゴリの回答受付中の質問
この質問につけられたタグ
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。