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

Back


ヨーロッパの主要サッカーリーグの人気チームの18/19シーズンの1試合あたりの平均観客数と,Jリーグの今シーズン6月までの動員数について,下の表を元に以下のような配列を用意します.観客動員の多い順に並べ直して表示するプログラムを作成しましょう.

Sanfrecce13,277
Gainare1,903
Dortmund80,841
Bayern75,000
Arsenal59,899
Liverpool52,983
Barcelona76,051
R. Madrid61,020

	int attend[2][8] = {{0, 1, 2, 3, 4, 5, 6, 7}, {13277, 1903, 80841, 75000, 59899, 52983, 76051, 61020}};
	char fc[8][7] = {"Sanf", "Gaina", "Dort", "Bayern", "Ars", "Liv", "Barca", "R. Mad"};

My student number: s186099

Sanf   Gaina  Dort   Bayern Ars    Liv    Barca  R. Mad 
 13277   1903  80841  75000  59899  52983  76051  61020 

Dort   Barca  Bayern R. Mad Ars    Liv    Sanf   Gaina  
 80841  76051  75000  61020  59899  52983  13277   1903 

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

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

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

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


解答例

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

int main(void)
{
	int i, j, k, tmp;
	int attend[2][8] = {{0, 1, 2, 3, 4, 5, 6, 7}, {13277, 1903, 80841, 75000, 59899, 52983, 76051, 61020}};
	char fc[8][7] = {"Sanf", "Gaina", "Dort", "Bayern", "Ars", "Liv", "Barca", "R. Mad"};
	
	printf("My student number: s186099\n\n");
	
	for(i=0; i<=7; i++)
	{
		printf("%-6s ", fc[i]);
	}
	
	printf("\n");
	
	for(i=0; i<=7; i++)
	{
		printf("%6d ", attend[1][i]);
	}
	
	printf("\n\n");
	
	for(i=0; i<=6; i++)
	{
		for(j=i+1; j<=7; j++)
		{
			if(attend[1][i]<attend[1][j])
			{
				for(k=0; k<=1; k++)
				{
					tmp = attend[k][i];
					attend[k][i] = attend[k][j];
					attend[k][j] = tmp;
				}
			}
		}
	}
	
	for(i=0; i<=7; i++)
	{
		printf("%-6s ", fc[attend[0][i]]);
	}
	
	printf("\n");
	
	for(i=0; i<=7; i++)
	{
		printf("%6d ", attend[1][i]);
	}
	
	printf("\n\n----------------------------------\n\n");
	
	
	return 0;
}


Back