質問編集履歴

2

2020/11/17 11:53

投稿

honchan1025
honchan1025

スコア0

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,8 @@
9
9
 
10
10
 
11
11
  1.は
12
+
13
+
12
14
 
13
15
 
14
16
 

1

2020/11/17 11:53

投稿

honchan1025
honchan1025

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  これらのプログラムを作成してください。
2
2
 
3
- 1.入力された数の中央値を求めるプログラを作成してください。ただし、入力数は奇数個の整数で、同じ値を含まない、最大19個の数で、配列によって小さな順に並べて、データごとに改行しながらターミナルに左寄せ表示して、中央値の右に*を併記するプログラム。
3
+ 1.入力された数の中央値を求めるプログラを作成し、入力数は奇数個の整数で、同じ値を含まない、最大19個の数で、配列によって小さな順に並べて、データごとに改行しながらターミナルに左寄せ表示して、中央値の右に*を併記するプログラム。
4
4
 
5
5
 
6
6
 
@@ -8,4 +8,108 @@
8
8
 
9
9
 
10
10
 
11
+ 1.は
12
+
13
+
14
+
15
+ #include <stdio.h>void swap(int *a,int *b) {
16
+
17
+ int t;
18
+
19
+ t=*a;
20
+
21
+ *a=*b;
22
+
23
+ *b=t;
24
+
25
+ }
26
+
27
+
28
+
29
+ //mode=0 uo mode<>0 dn
30
+
31
+ void bsort(int *s,int n,int mode) {
32
+
33
+ int i,j;
34
+
35
+ for(i=0; i<n; i++) {
36
+
37
+ for(j=i; j<n; j++) {
38
+
39
+ if(mode==0) {
40
+
41
+ if(s[i]>s[j]) swap(&s[i],&s[j]);
42
+
43
+ } else {
44
+
45
+ if(s[i]<s[j]) swap(&s[i],&s[j]);
46
+
47
+
48
+
49
+ }
50
+
51
+ }
52
+
53
+
54
+
55
+ }
56
+
57
+ }
58
+
59
+
60
+
61
+
62
+
63
+ int main(void) {
64
+
65
+ int dt[20];
66
+
67
+ int i,ct=0,n;
68
+
69
+ char c;
70
+
71
+
72
+
73
+ while(ct<20) {
74
+
75
+ printf("input%d(exit<0) >",ct+1);
76
+
77
+ scanf("%d",&n);
78
+
79
+ if(n>=0) {
80
+
81
+ dt[ct]=n;
82
+
83
+ ct++;
84
+
85
+ }else{
86
+
87
+ break;
88
+
89
+ }
90
+
91
+ }
92
+
93
+ bsort(dt,ct,0);
94
+
95
+ for(i=0; i<ct; i++) {
96
+
97
+ if(i==ct/2) {
98
+
99
+ c='*';
100
+
101
+ } else {
102
+
103
+ c=' ';
104
+
105
+ }
106
+
107
+ printf("%2d: %d%c\n",i+1,dt[i],c);
108
+
109
+ }
110
+
111
+ return 0;
112
+
113
+ }
114
+
11
- 全く分からないので教えてください。よろしくお願いします。
115
+ としたのですが2.が分かりません。教えてください。