前提・実現したいこと
プログラミング初心者で勉強中です
配列を使って数値を小さい順から表示するプログラムを作りたいです
悪い箇所の指摘をお願いします
■■な機能を実装中に以下のエラーメッセージが発生しました。
コンパイルできましたが、数値入力後に出力されません
//数値10個を配列に入力し小さな数字から順番に //表示するプログラム include<stdio.h> int main(void){ int data[10]; //数字入力用 int i=0; //dt配列カウンタ int ii=0; //比較判定用カウンタ int x=0; //値入れ替え用変数 int out=0; //並べ替えループ ブレーク変数 //=====================================入力 do{ printf("数値を入力=> "); scanf("%d",&data[i]); i++;}while(i<10); //=====================================処理 do{ for(ii=0;ii<=8;ii++){ if(data[i]<data[i+1]){ x=data[i]; //*交換 data[i]=data[i+1]; //* data[i+1]=x; //* i++; out+=1; } } }while(out==100); //並べ替え終了 //=====================================出力 printf("昇順ソート :"); for(i=0;i<=9;i++){ printf("%d ",data[i]);} printf("\n"); return 0; }
ご指摘いただいたmarkdownに書き換えました。
試したこと
コメントアウトにて部分的に確認してみると
並べ替え判定以外の部分は正常に動いているようなのですが
原因がわかりません
補足情報(FW/ツールのバージョンなど)
Windows10
terapad
gcc
「数値入力後に出力されません」とは「"昇順ソート :"」も出力されていないということですか?
はい。
出力されません。
数字を10回入力→プログラム終了 ということですか? それとも無限ループしている感じですか?
返答ありがとうございます。
数字を10回入力までは正常に作動していて、
10回目を入力し終わった後から動かない状態で
現状はcontrol+cで終了させている状態です。
今のところ無限ループにはなっていません。
エラーメッセージなども出てきません。
コードにはコードブロックを使うようにしてください(編集画面の<code>ボタンで挿入可能)
> 悪い箇所の指摘をお願いします
とのことですが、コードの中の「処理」の部分のコードがあまりにメチャクチャで、悪い箇所を一つ一つ指摘するのが難しく、一から書き換えて正解のコードを丸ごと提示したほうが何倍も楽だろうというレベルです。
もっと簡単な問題から取り組むことをおすすめします。
それと、こういう質問では「昇順ソート」ではなく、アルゴリズム名を明示してください。
コードを見る感じだとバブルソートっぽいですが、そうならバブルソートであると記述するようにしてください。
ご指摘いただいたコード挿入の件今後気を付けます
2KOH さん
色々と勉強が足りずお手数かけてしまいすみません。
私自身もそう思います。
コードを頭の中で組み立てる状態でめちゃくちゃになってしまいます。
今後の勉強のためにも、何かいい勉強方法があればご教授ください。
それと、質問の記述方法の指摘についても意味が理解できていませんので、アルゴリズムと昇順ソートの違いも調べてみます。
コードは https://teratail.com/help/question-tips#questionTips3-7 の [コード] に修正してください。
多数の回答、ご指摘ありがとうございました。
大変恐縮ですが、もし差し支えなければ今後のアドバイスなどもいただけると大変ありがたいです。自分に足りないものが多すぎてどのように勉強進めていけばいいのかよくわかっていません。
現状では学校でc言語の勉強をしていますが、授業だけでは実践で使えないレベルだと承知していますので、皆様の情報を参考にさせてください。
コードを見てもらうためには、Markdown できちんと字下げしましょう。
ご指摘ありがとうございます。
遅くなりましたが、ご指摘いただいたMarkdownに書き換えました。
今後も利用させていただくので、ソースコード記載の際は気をつけます。
皆様にベストアンサーをつけさせていただきたかったのですがかなわず、独断で選ばせていただきました。
大変勉強になりました。ありがとうございました。
回答6件
あなたの回答
tips
プレビュー