![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
最大で30個の整数データを入力し、それを大きい順に並べ替えるプログラムを1次元配列と繰り返し・if文を使って作成しなさい。 という問題で
#include<stdio.h>
main()
{
int a[30],x,y,z;
printf("Seisu wo 30 ko Nyuryoku \n");
for(x=0;x<=29;x++)
scanf("%d",&a[x]);
printf("before sort...\n");
for(x=0;x<=29;x++)
printf("%d ",a[x]);
for(x=0;x<=28;x++)
for(y=0;y<=28-x;y++)
if(a[y]<a[y+1])
{
z=a[y];a[y]=a[y+1];a[y+1]=z;
}
printf("\n after sort...\n");
for(x=0;x<=29;x++)
printf("%d ",a[x]);
}
ここまで出来たのですが最大で30個ということなので(例)「10個の整数を入力して Z を入力したら終了」
としたいのですがどこをどのようにすればいいですか?
No.2ベストアンサー
- 回答日時:
プログラムをじっくり読んだワケではないですがfor文の条件式に「||」(または)を使って「a[y+1]!=z」(入力がzじゃない間)を追加するみたいにすればいいんじゃないですかね。
質問の意図に合っているといいんですが。
No.1
- 回答日時:
入力をchar型でさせて入力文字がZか判別。
Zなら入力終了、Zでないならatoiでint型に変換。
------------------------------------------------------------
#include<stdio.h>
#include <stdlib.h>
main()
{
int a[ 30 ] , x , y , z , i ;
char str[ 100 ] ;
printf( "Seisu wo 30 ko Nyuryoku \n" );
for( i = 0 ; i <= 29 ; i++ ){
scanf( "%s" , str ) ;
if( str[ 0 ] == 'z' || str[ 0 ] == 'Z' ){
i = i - 1 ;
break ;
}
a[ i ] = atoi( str ) ;
}
printf("before sort...\n");
for(x=0;x<=i;x++)
printf("%d ",a[x]);
for(x=0;x<=i-1;x++)
for(y=0;y<=i-1-x;y++)
if(a[y]<a[y+1])
{
z=a[y];a[y]=a[y+1];a[y+1]=z;
}
printf("\n after sort...\n");
for(x=0;x<=i;x++)
printf("%d ",a[x]);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
コンパイルエラーについて
-
hit&bolwのプログラミングがで...
-
C言語初心者です。次の問題で質...
-
九九を表示させるプログラム
-
3つの整数が等しいかどうか調...
-
printf()文の書式
-
コマンドラインに出力した文字...
-
円の面積を求めるプログラミン...
-
5×5の転置行列を求めるC言語の...
-
Macでテキストエディットを用い...
-
printf( " %2d", p * q );
-
C言語のプログラミングについて...
-
printfの出力内の文字をdefine...
-
配列のソート(昇順)
-
コンパイルすると『breakの位置...
-
プログラミング 分かる方お願...
-
このグラフが書きたいんですが。。
-
C言語 文字列の比較 compare
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
strcmp
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
cshの文字列操作(0埋め)
-
4の倍数を論理演算で表す。。
-
C言語 プログラミング
-
%P と %X の違い
-
8人分のテストの点数を入力し、...
-
C言語での、年複利の計算方法...
-
printf( " %2d", p * q );
-
hit&bolwのプログラミングがで...
-
scanfに文字が入力されたときに...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
unsigned int型について
おすすめ情報