#1
by rayban.jp » 7年前
構造体についてのC言語のプログラミングです。
構造体を使用して家庭教師のとりますめをします。
希望金額をscanfで入力し、金額の差が少ない三人を表示するというものです。
順番に三人だけ表示することはできたのですが、並び替えをうまく行えません。
アロー演算子を使っていますがそれ以外でも大丈夫です。
お助けください
ソース
#include<stdio.h>
#include <string.h>
#include<math.h>
struct teacher {
int number;
char *name;
int kane;
int gakunen;
};
int main(){
struct teacher katei[15]={
1,"Andou",10000,2,
2,"Inoue",20000,1,
3,"Ueno",15000,2,
4,"Endou",18000,3,
5,"Okazaki",22000,3,
6,"Katou",13000,1,
7,"Simizu",17000,2,
8,"Tsuda",25000,3,
9,"Nemoto",21000,2,
10,"Hotta",19000,1,
11,"Miura",30000,3,
12,"Yamazaki",29000,3,
13,"Wada",14000,1,
14,"Fujii",23000,1,
15,"Jinbo",28000,2,
};
int i;
int x;
int j,tmp;
struct teacher *p;
p = katei;
scanf("%s",x);
/*x -= (p+i)->kane;
printf("%d\n",abs(x));
for(i=0;i<15;++i){
for(j=i+1;j<15;++j){
if(x>(p+i)->kane){
tmp=(p+i)->kane;
(p+i)->kane = (p+i)->kane[j];
(p+i)->kane[j] = tmp;
}
}
}
*/
for(i=0;i<3;i++){
printf("%d円、(%d) %s \n",(p+i)->kane,(p+i)->gakunen,(p+i)->name);
}
return 0;
}
実行したい結果
1 20000
1: 20000円、(2) Inoue
2: 19000円、(10) Hotta
3: 23000円、(14) Fujii
構造体についてのC言語のプログラミングです。
構造体を使用して家庭教師のとりますめをします。
希望金額をscanfで入力し、金額の差が少ない三人を表示するというものです。
順番に三人だけ表示することはできたのですが、並び替えをうまく行えません。
アロー演算子を使っていますがそれ以外でも大丈夫です。
お助けください
ソース
#include<stdio.h>
#include <string.h>
#include<math.h>
struct teacher {
int number;
char *name;
int kane;
int gakunen;
};
int main(){
struct teacher katei[15]={
1,"Andou",10000,2,
2,"Inoue",20000,1,
3,"Ueno",15000,2,
4,"Endou",18000,3,
5,"Okazaki",22000,3,
6,"Katou",13000,1,
7,"Simizu",17000,2,
8,"Tsuda",25000,3,
9,"Nemoto",21000,2,
10,"Hotta",19000,1,
11,"Miura",30000,3,
12,"Yamazaki",29000,3,
13,"Wada",14000,1,
14,"Fujii",23000,1,
15,"Jinbo",28000,2,
};
int i;
int x;
int j,tmp;
struct teacher *p;
p = katei;
scanf("%s",x);
/*x -= (p+i)->kane;
printf("%d\n",abs(x));
for(i=0;i<15;++i){
for(j=i+1;j<15;++j){
if(x>(p+i)->kane){
tmp=(p+i)->kane[i];
(p+i)->kane[i] = (p+i)->kane[j];
(p+i)->kane[j] = tmp;
}
}
}
*/
for(i=0;i<3;i++){
printf("%d円、(%d) %s \n",(p+i)->kane,(p+i)->gakunen,(p+i)->name);
}
return 0;
}
実行したい結果
1 20000
1: 20000円、(2) Inoue
2: 19000円、(10) Hotta
3: 23000円、(14) Fujii