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

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

新規登録して質問してみよう
ただいま回答率
85.35%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

1回答

1119閲覧

中央値を求めるプログラムと空白を表示するプログラム

honchan1025

総合スコア0

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2020/11/17 11:33

編集2020/11/17 11:53

これらのプログラムを作成してください。
1.入力された数の中央値を求めるプログラを作成し、入力数は奇数個の整数で、同じ値を含まない、最大19個の数で、配列によって小さな順に並べて、データごとに改行しながらターミナルに左寄せ表示して、中央値の右に*を併記するプログラム。

2.1.のプログラムの各行の表示位置を各データの値だけ空白を挿入して、全体の分布傾向を可視化してください。

1.は

#include <stdio.h>void swap(int *a,int *b) {
int t;
t=*a;
*a=*b;
*b=t;
}

//mode=0 uo mode<>0 dn
void bsort(int *s,int n,int mode) {
int i,j;
for(i=0; i<n; i++) {
for(j=i; j<n; j++) {
if(mode==0) {
if(s[i]>s[j]) swap(&s[i],&s[j]);
} else {
if(s[i]<s[j]) swap(&s[i],&s[j]);

}
}

}
}

int main(void) {
int dt[20];
int i,ct=0,n;
char c;

while(ct<20) {
printf("input%d(exit<0) >",ct+1);
scanf("%d",&n);
if(n>=0) {
dt[ct]=n;
ct++;
}else{
break;
}
}
bsort(dt,ct,0);
for(i=0; i<ct; i++) {
if(i==ct/2) {
c='*';
} else {
c=' ';
}
printf("%2d: %d%c\n",i+1,dt[i],c);
}
return 0;
}
としたのですが2.が分かりません。教えてください。

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

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

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

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

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

Zuishin

2020/11/17 11:38

まず基礎を学習し、わかるようになってから問題に取り組んでください。 この問題を解くには標準入出力とソートとループが最低限必要です。
guest

回答1

0

たかだか19個ということなので,ソートを諦めても良いかな,とか.

C++

1int Find_nth_Val( int n, const int Array[], int ArrayLength ) 2{ 3 for( int i=0; i<ArrayLength; ++i ) 4 { 5 int count = 0; 6 for( int j=0; j<ArrayLength; ++j ) 7 { 8 if( Array[j] < Array[i] ){ ++count; } 9 } 10 if( count == n ){ return Array[i]; } 11 } 12 return 0; //don't care... 13} 14 15// 16int main(int argc, char *argv[]) 17{ 18 //※入力処理は面倒だし本質でないので,ここではハードコーディングしてある 19 const int N = 9; //数値の個数.奇数.最大19. 20 const int Array[N] = { 3, 9, 0, 8, 2, 1, 14, 60, 10 }; //N個の整数.同じ値を含まない. 21 22 //小さい順に表示,中央値の横には*を表示する 23 for( int i=0; i<N; ++i ) 24 { 25 int v = Find_nth_Val(i, Array, N ); 26 //for( int j=0; j<v; ++j )putchar(' '); //2.の場合はこの行を有効化 27 printf( ( i==N/2 ? "%d*\n" : "%d\n" ), v ); 28 } 29 30 return 0; 31}

2.の

プログラムの各行の表示位置を各データの値だけ空白を挿入して

の意味がこれで合ってるかわからんけど.
(この解釈だと,「負の値のときはどうするんだよ?」みたいな謎がある.あと,正の値でも巨大な値を入力されたら嫌だなぁ)

投稿2020/11/18 01:29

編集2020/11/18 01:30
fana

総合スコア11996

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問