質問編集履歴
1
補足
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
構造体
|
1
|
+
2つの構造体配列を比較しソート
|
body
CHANGED
@@ -15,12 +15,12 @@
|
|
15
15
|
typedef struct person09{
|
16
16
|
char name[NAME_MAX];
|
17
17
|
signed int profit;
|
18
|
-
}
|
18
|
+
}person09_t;
|
19
19
|
|
20
20
|
typedef struct person10{
|
21
21
|
char name[NAME_MAX];
|
22
22
|
signed int profit;
|
23
|
-
}
|
23
|
+
}person10_t;
|
24
24
|
|
25
25
|
void sort(int no, char *result[]){
|
26
26
|
int i;
|
@@ -45,53 +45,27 @@
|
|
45
45
|
int no;
|
46
46
|
int flag[5] = {0};
|
47
47
|
char *result_array[8];
|
48
|
+
//char profit_array[8] = {0};
|
48
49
|
char *area;
|
49
50
|
int profit_d[8] = {0};
|
50
51
|
|
52
|
+
//構造体配列
|
53
|
+
person09_t ary_09[6] = {{"アトウ",270},{"カスガ",325},{"タケモト",412},{"タナカ",333},{"ヤマシタ",277},{"ヨシオカ",192}};
|
54
|
+
person10_t ary_10[5] = {{"カスガ",357},{"スズキ",210},{"タケモト",445},{"ヤマシタ",233},{"ヨシダ",145}};
|
51
55
|
|
52
|
-
//構造体宣言
|
53
|
-
person09 data09[6];
|
54
|
-
person10 data10[5];
|
55
56
|
|
56
57
|
|
57
|
-
//構造体初期化
|
58
|
-
data09[0].profit = 270;
|
59
|
-
data09[1].profit = 325;
|
60
|
-
data09[2].profit = 412;
|
61
|
-
data09[3].profit = 333;
|
62
|
-
data09[4].profit = 277;
|
63
|
-
data09[5].profit = 192;
|
64
|
-
|
65
|
-
strcpy(data09[0].name, "アトウ");
|
66
|
-
strcpy(data09[1].name, "カスガ");
|
67
|
-
strcpy(data09[2].name, "タケモト");
|
68
|
-
strcpy(data09[3].name, "タナカ");
|
69
|
-
strcpy(data09[4].name, "ヤマシタ");
|
70
|
-
strcpy(data09[5].name, "ヨシオカ");
|
71
|
-
|
72
|
-
data10[0].profit = 357;
|
73
|
-
data10[1].profit = 210;
|
74
|
-
data10[2].profit = 445;
|
75
|
-
data10[3].profit = 233;
|
76
|
-
data10[4].profit = 145;
|
77
|
-
|
78
|
-
strcpy(data10[0].name, "カスガ");
|
79
|
-
strcpy(data10[1].name, "スズキ");
|
80
|
-
strcpy(data10[2].name, "タケモト");
|
81
|
-
strcpy(data10[3].name, "ヤマシタ");
|
82
|
-
strcpy(data10[4].name, "ヨシダ");
|
83
|
-
|
84
58
|
//元の数字を表示
|
85
59
|
for( i=0 ; i < 6; i++){
|
86
|
-
printf("%s ",
|
60
|
+
printf("%s ",ary_09[i].name);
|
87
|
-
printf("%d\n",
|
61
|
+
printf("%d\n",ary_09[i].profit);
|
88
62
|
}
|
89
63
|
|
90
64
|
|
91
65
|
printf("\n");
|
92
66
|
for( i=0 ; i < 5; i++){
|
93
|
-
printf("%s ",
|
67
|
+
printf("%s ",ary_10[i].name);
|
94
|
-
printf("%d\n",
|
68
|
+
printf("%d\n",ary_10[i].profit);
|
95
69
|
}
|
96
70
|
|
97
71
|
printf("\n");
|
@@ -106,12 +80,12 @@
|
|
106
80
|
for( j = 0; j < 5; j++){
|
107
81
|
|
108
82
|
//売上比較
|
109
|
-
if(strcmp(
|
83
|
+
if(strcmp( ary_09[i].name, ary_10[j].name) == 0 ){
|
110
|
-
printf("%s ",
|
84
|
+
printf("%s ",ary_09[i].name);
|
111
|
-
profit_d[i] =
|
85
|
+
profit_d[i] = (ary_10[j].profit) - (ary_09[i].profit);
|
112
86
|
printf("%d\n",profit_d[i] );
|
113
87
|
flag[j] = CHECKED;
|
114
|
-
result_array[r] =
|
88
|
+
result_array[r] = ary_09[i].name;
|
115
89
|
r++;
|
116
90
|
break;
|
117
91
|
}else{
|
@@ -120,8 +94,8 @@
|
|
120
94
|
|
121
95
|
//退社判定
|
122
96
|
if( cnt == RETIRE ){
|
123
|
-
printf("%s 退社\n",
|
97
|
+
printf("%s 退社\n",ary_09[i].name);
|
124
|
-
result_array[r] =
|
98
|
+
result_array[r] = ary_09[i].name;
|
125
99
|
r++;
|
126
100
|
break;
|
127
101
|
}
|
@@ -131,13 +105,12 @@
|
|
131
105
|
//入社判定
|
132
106
|
for( j = 0; j < 5; j++){
|
133
107
|
if( flag[j] != CHECKED ){
|
134
|
-
printf("%s 入社\n",
|
108
|
+
printf("%s 入社\n",ary_10[j].name);
|
135
|
-
result_array[r] =
|
109
|
+
result_array[r] = ary_10[j].name;
|
136
110
|
r++;
|
137
111
|
}
|
138
112
|
}
|
139
113
|
|
140
|
-
|
141
114
|
//並び替え処理
|
142
115
|
printf("\n");
|
143
116
|
puts("---------------------------------------------");
|
@@ -151,10 +124,13 @@
|
|
151
124
|
free(area);
|
152
125
|
return 0;
|
153
126
|
}
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
|
154
131
|
```
|
155
132
|
|
156
133
|
昨年と今年の売り上げを比較し、昨年いない人は「入社」、今年いない人は「退社」というプログラムを書いています。
|
157
134
|
|
158
|
-
名前を50音順に並び替え、売り上げ、入社、退社
|
135
|
+
2つの構造体配列を比較し名前を50音順に並び替え、売り上げ、入社、退社 を名前と紐づけたいです。
|
159
|
-
|
160
136
|
何か良い方法があったら教えて頂きたいです。
|