質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

981閲覧

C言語について質問があります

benefit2025

総合スコア3

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/06/24 10:32

編集2020/06/24 20:25

下記のような結果を出したいですが,
並べ替え後の設定をどの下記のような結果を出したいですが,
並べ替え後の設定をどのすればよろしいでしょうか。
現在は並べ替え後には大きい数字が出るので問題です。

== ならへかえプログラム ==

83 86 77 15
*** 並べ替え前 ***

15 77 83 86
*** 並べ替え後 ***

==================

#include <stdlib.h>
#include <stdio.h>

int main(void) {

int Data[4]; int tmp, id, max_id, flag_id; printf("== 小→大へ 並べ替えプログラム ==\n\n"); // サンプルデータ生成( 範囲0~99 の擬似乱数 ) for ( id = 0; id < 4; id++ ) Data[id] = rand() % 100; for ( id = 0; id < 4; id++ ) printf("%2d ", Data[id]); printf("\n*** 並べ替え前 ***\n\n");

** for( flag_id = ?; flag_id>=1 ; ? ) {
max_id = flag_id;
for( id=?; id<flag_id; ? ){
if(Data[id] > Data[max_id]) max_id = id;**
}
tmp = Data[max_id];
Data[max_id] = Data[flag_id];
Data[flag_id] = tmp;
}

//*** 『小→大へ 並べ替え』処理ここまで *** for ( id = 0; id < 4; id++ ) printf("%2d ",Data[id]); printf("\n*** 並べ替え後 ***\n");

return 0;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2020/06/24 10:53

for( flag_id= 0 ; flag_id>=1 ; id++ )・・・この、for文、一回でも通りますか? 0で初期化して、1以上って? せっかく、ブロック構造でかける言語ですから、インデントをちゃんとしましょう。
benefit2025

2020/06/24 15:38

for( flag_id = 0; flag_id < 1; flag_id++ ) { max_id = flag_id; for( id=4; id<flag_id; id++ ){ if ( Data[id] < Data[max_id]) max_id = id; こちらで正しいでしょうか。
cateye

2020/06/24 16:18

>こちらで正しいでしょうか。・・・・確認するのは、あなたです。
guest

回答1

0

いろいろ間違ってる。

C

1#include <stdlib.h> 2#include <stdio.h> 3 4#define N 20 5 6int main(void) { 7 8 int Data[N]; 9 int tmp, id, max_id, flag_id; 10 11 printf("== 小→大へ 並べ替えプログラム ==\n\n"); 12 // サンプルデータ生成( 範囲0~99 の擬似乱数 ) 13 for ( id = 0; id < N; id++ ) Data[id] = rand() % 100; 14 for ( id = 0; id < N; id++ ) printf("%2d ", Data[id]); 15 printf("\n*** 並べ替え前 ***\n\n"); 16 17 for( flag_id = 0; flag_id < N; flag_id++ ) { 18 max_id = flag_id; 19 for( id = flag_id + 1; id < N; id++ ){ 20 if ( Data[id] < Data[max_id]) 21 max_id = id; 22 } 23 tmp = Data[max_id]; 24 Data[max_id] = Data[flag_id]; 25 Data[flag_id] = tmp; 26 } 27 28 //*** 『小→大へ 並べ替え』処理ここまで *** 29 for ( id = 0; id < N; id++ ) 30 printf("%2d ",Data[id]); 31 printf("\n*** 並べ替え後 ***\n"); 32 33 return 0; 34}

投稿2020/06/24 10:54

編集2020/06/24 10:56
episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問