受験番号(4桁)と氏名(20文字以内)を5人分入力し、番号順とアルファベット順の
2種類のリストを出力するプログラムを、構造体を用いて作成。
問題2
下記の作家は「このマンガがすごい!オトコ編」と「マンガ大賞」の受賞者で、数字は受賞年を表す。
これを構造体を用いて表し、賞別、受賞年順にソーティングするプログラムを作成。
一番右の"K"、"M"はそれぞれ"このマンガがすごい!"、"マンガ大賞"を示す。
Koyama - Chuya 2009 M
Murata - Yusuke 2014 M
Sasuga - Yu 2013 K
Umino - Chika 2011 M
Ooima - Yoshitoki 2015 K
Suetsugu - Yuki 2010 M
Matsui - Yusei 2015 K
Yoshimoto - Koji 2012 K
問題1のプログラム
struct exam{ int no; char name[20]; }; int main(void) { int i,j; struct exam member[10]; for(i=0;i<5 d="" for="" i="0;i<5;i++)" j="4;j" member="" name="" no="" printf="" s="" scanf="">i;j--) { if (member[j-1].no>member[j].no) { member[6] = member[j]; member[j] = member[j-1]; member[j-1]= member[6]; } } } printf("番号順にソート\n"); for(i =0;i<5 d="" for="" i="0;i<5;i++)" j="4;j" member="" n="" name="" no="" printf="" s="">i;j--) { if(strcmp(member[j-1].name,member[j].name)>0) { member[6] = member[j]; member[j] = member[j-1]; member[j-1]= member[6]; } } } printf("アルファベット順にソート\n"); for(i =0;i<5 0="" d="" i="" member="" n="" name="" no="" pre="" printf="" return="" s=""> printf("受験番号:%d 氏名:%s\n",member[i].no, member[i].name); } return 0; }
問題2のプログラム
struct exam{ int no; char name[20]; }; int main(void) { int i,j; struct exam member[10]; for(i=0;i<5 d="" for="" i="0;i<5;i++)" j="4;j" member="" name="" no="" printf="" s="" scanf="">i;j--) { if (member[j-1].no>member[j].no) { member[6] = member[j]; member[j] = member[j-1]; member[j-1]= member[6]; } } } printf("番号順にソート\n"); for(i =0;i<5 d="" for="" i="0;i<5;i++)" j="4;j" member="" n="" name="" no="" printf="" s="">i;j--) { if(strcmp(member[j-1].name,member[j].name)>0) { member[6] = member[j]; member[j] = member[j-1]; member[j-1]= member[6]; } } } printf("アルファベット順にソート\n"); for(i =0;i<5 0="" 13_2.c="" cat="" d="" i="" include="" iwakami="" kadai13="" localhost="" master="" member="" n="" name="" no="" printf="" return="" s="" stdio.h=""> struct manga { char name[30]; int year; char award; }; int main(void) { int i,j; struct manga member[10] = { {"Koyama - Chuya ", 2009, 'M'}, {"Murata - Yusuke ", 2014, 'M'}, {"Sasuga - Yu ", 2013, 'K'}, {"Umino - Chika ", 2011, 'M'}, {"Ooima - Yoshitoki", 2015, 'K'}, {"Suetsugu - Yuki ", 2010, 'M'}, {"Matsui - Yusei ", 2015, 'K'}, {"Yoshimoto - Koji ", 2012, 'K'}, }; printf("構造体を用いて表示\n"); for(i = 0; i < 8; i++) { printf("%s %d %c\n",member[i].name, member[i].year, member[i].award); } //賞別にソート for (i=0;i<8 for="" i="" j="7;j">i;j--) { if (member[j-1].award > member[j].award) { member[9] = member[j]; member[j] = member[j-1]; member[j-1]= member[9]; } } } //賞ごとに受賞年順をソート for (i=0;i<8;i++) { for (j=7;j>i;j--) { if ((member[j-1].year > member[j].year)&&(member[j-1].award==member[j].award)) { member[9] = member[j]; member[j] = member[j-1]; member[j-1]= member[9]; } } } printf("賞別、受賞年順にソート\n"); for(i =0;i<8;i++) { printf("%s %d %c\n",member[i].name, member[i].year, member[i].award); } return 0; }