c言語 配列

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
asama

c言語 配列

#1

投稿記事 by asama » 7年前

この問題がわかりません
解き方と答えを教えてくださいm(__)m

以下は、配列xの要素をソートするプログラムである。画面上に"Hi!"が表示されるタイミングの各変数、各配列要素の状態を、時系列に従い上から下に並べた表を完成させよ。

コード:

#include<stdio.h>
int main(){
int x[5]={-3,-2,10,7,116};
int s,t,tmp;
for(s=0; s<4; s++){
for(t=s+1; t<5; t++){
printf("Hi!¥n");
if(x[t] > x[s]){
tmp=x[t];
x[t]=x[s];
x[s]=tmp;
}
}
}
}
 
表を完成させよ
s  t x[0] x[1]  x[2] x[3] x[4]
0 1 -3 -2 10 7 116
0 2 -2 -3 10 7 116
空白の段が8段

表見ずらくてすみません。お願いします

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: c言語 配列

#2

投稿記事 by みけCAT » 7年前

フォーラムルールをお読みください。
(問題というだけでは課題なのか、それとも自習などで勝手に解こうとしているだけなのかわかりませんが)課題の丸投げは禁止です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

asama

Re: c言語 配列

#3

投稿記事 by asama » 7年前

すみません、フォーラムルール読んでませんでした
中間テストの過去問なんですけど答えがなくて...調べても全く分からないのでよかったら教えてもらえませんか?
今日テストなんですけどこの問題だけどうしてもわからないです。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: c言語 配列

#4

投稿記事 by みけCAT » 7年前

解き方は素直にシミュレーションすればいいと思います。
答えは各変数、各配列要素の状態を出力する処理を追加して実行すればとりあえず得られます。

コード:

#include<stdio.h>
int main(){
int x[5]={-3,-2,10,7,116};
int s,t,tmp;
for(s=0; s<4; s++){
for(t=s+1; t<5; t++){
printf("Hi!¥n");
printf("\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", s, t, x[0], x[1], x[2], x[3], x[4]); /* 各変数、各配列要素の状態を出力する処理 */
if(x[t] > x[s]){
tmp=x[t];
x[t]=x[s];
x[s]=tmp;
}
}
}
}
(インデントのない元コードを尊重しました)

実行結果

コード:

Hi!¥n	0	1	-3	-2	10	7	116
Hi!¥n	0	2	-2	-3	10	7	116
Hi!¥n	0	3	10	-3	-2	7	116
Hi!¥n	0	4	10	-3	-2	7	116
Hi!¥n	1	2	116	-3	-2	7	10
Hi!¥n	1	3	116	-2	-3	7	10
Hi!¥n	1	4	116	7	-3	-2	10
Hi!¥n	2	3	116	10	-3	-2	7
Hi!¥n	2	4	116	10	-2	-3	7
Hi!¥n	3	4	116	10	7	-3	-2
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

asama

Re: c言語 配列

#5

投稿記事 by asama » 7年前

ありがとうござます!

返信

“C言語何でも質問掲示板” へ戻る