プログラミング入門II 宿題 2019.07.12

Back


授業で行ったサッカーチーム名の並べ替えを改造します.以下のような配列を用意して,チーム名をアルファベット順に並べ替えて表示するプログラムを作成しましょう.

	char fc[10][12] = {"Chelsea",
				"Liverpool",
				"West ham",
				"Dortmund",
				"Bayern",
				"Real Madrid",
				"Getafe",
				"Paris",
				"Milan",
				"Sanfrecce"};

	char nation[10][8] = {"UK", "UK", "UK",
				"Germany", "Germany",
				"Spain", "Spain",
				"France",
				"Italy",
				"Japan"};
	
	char tmp[12];

My student number: S186099

Bayern -------- Germany
Chelsea ------------ UK
Dortmund ------ Germany
Getafe ---------- Spain
Liverpool ---------- UK
Milan ----------- Italy
Paris ---------- France
Real Madrid ----- Spain
Sanfrecce ------- Japan
West ham ----------- UK

-----------------------------

なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.

解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください.

指定の解答用紙を使用していない,コンパイルエラーが出る,実行時に警告が出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください.


解答例

// ************************************************** 
//                                                    
//      プログラミング入門II レポート課題                                    
//      2019.07.12                                    
//                                                    
// ************************************************** 
//                                                    
//      学生番号:                                     
//                                                    
//      氏名:                                         
//                                                    
// ************************************************** 
//                                                    
//      
              
#include <stdio.h>
#include <string.h>

int main(void)
{
	int i, j;
	
	char fc[10][12] = {"Chelsea",
				"Liverpool",
				"West ham",
				"Dortmund",
				"Bayern",
				"Real Madrid",
				"Getafe",
				"Paris",
				"Milan",
				"Sanfrecce"};

	char nation[10][8] = {"UK", "UK", "UK",
				"Germany", "Germany",
				"Spain", "Spain",
				"France",
				"Italy",
				"Japan"};
	
	char tmp[12];
	
	printf("My student number: S186099\n\n");
	
	for(i=0; i<=8; i++)
	{
		for(j=i+1; j<=9; j++)
		{
			if(fc[i][0]>fc[j][0])
			{
				strcpy(tmp, fc[i]);
				strcpy(fc[i], fc[j]);
				strcpy(fc[j], tmp);
				
				strcpy(tmp, nation[i]);
				strcpy(nation[i], nation[j]);
				strcpy(nation[j], tmp);
			}
		}
	}
	
	for(i=0; i<=9; i++)
	{
		printf("%s ", fc[i]);
		
		for(j=0; j<=20-strlen(fc[i])-strlen(nation[i]); j++)
		{
			printf("-");
		}
		
		printf(" %s\n", nation[i]);
	}
	
	printf("\n-----------------------------\n\n");
	
	return 0;
}


Back