天体☆観測さんとモバ友になろう!
日記・サークル・友達・楽しみいっぱい!
-
- 2012/5/22 16:41
- あはん
-
- コメント(2)
- 閲覧(77)
-
-
- #include <stdio.h>
#include <string.h>
#define size 200
#define max 3
struct per_inf {
char nam[size];
char ps_co[size];
char add[size];
char pho[size];
char mai[size];
};
void fun_sort(char sort[max], char a[max], char b[max], char c[max], char d[max])
{
int result;
int i, j;
int k;
int l = 0;
char ex[1000];
for(i = 0; i < max - 1; i++){
k = i;
for(j = i + 1; j < max; j++){
result = strcmp(sort[k], sort[j]);
if(result < 0)
k = j; }
ex[l] = sort[i];
sort[i] = sort[k];
sort[k] = ex[l];
l++;
ex[l] = a[i];
a[i] = a[k];
a[k] = ex[l];
l++;
ex[l] = b[i];
b[i] = b[k];
b[k] = ex[l];
l++;
ex[l] = c[i];
c[i] = c[k];
c[k] = ex[l];
l++;
ex[l] = d[i];
d[i] = d[k];
d[k] = ex[l];
l++;
}
for(i = 0; i < max; i++){
printf("%s %s %s %s %s\n", sort[i], a[i], b[i], c[i], d[i]); }
}
int main()
{
int sort;
int result;
int i;
struct per_inf data[max] = {
{"IWATE Taro", "020-0193", "Sugo,Takizawa,Iwate", "0196942000", "iwate@iate-pu.ac.jp"},
{"IWATE Jiro", "020-8551", "Ueda,Morioka,Iwate", "0196216304", "jiro@iwate-u.ac.jp"},
{"FUJI Saburo", "025-0025", "Shimoneko,Hanamaki,Iwate", "0198237974", "sburo@fuji-u.ac.jp"}
};
printf("Do you want to sort by either name or address?\n");
printf("name: 1 address: 2\n");
printf("Please enter the number of 1 or 2: ", sort);
scanf("%d", &sort);
if(sort < 1 || sort > 2 ){
printf("error: Please enter the number of 1 or 2\n");
return -1;
}
if(sort == 1){
for(i = 0; i < max; i++){
fun_sort(data[i].nam, data[i].ps_co, data[i].add, data[i].pho, data[i].mai);
}
}
if(sort == 2){
for(i = 0; i < max; i++){
fun_sort(data[i].add, data[i].ps_co, data[i].nam, data[i].pho, data[i].mai);
}
}
}
標準入力にて1(氏名)か2(アドレス)の数値を入力することで、それについてのソートを行います
汚いのはあとで直すけど、なぜこれでダメなのか分からない…
- #include <stdio.h>