プログラミング入門I 宿題 2019.01.28

Back


アルファベットの大文字26文字について,最初にランダムに1文字表示し,その文字から順に全26文字を以下のように10回繰り返して表示するプログラムを作成せよ.

My student number: s186099

M: MNOPQRSTUVWXYZABCDEFGHIJKL
P: PQRSTUVWXYZABCDEFGHIJKLMNO
L: LMNOPQRSTUVWXYZABCDEFGHIJK
G: GHIJKLMNOPQRSTUVWXYZABCDEF
C: CDEFGHIJKLMNOPQRSTUVWXYZAB
G: GHIJKLMNOPQRSTUVWXYZABCDEF
Y: YZABCDEFGHIJKLMNOPQRSTUVWX
D: DEFGHIJKLMNOPQRSTUVWXYZABC
Z: ZABCDEFGHIJKLMNOPQRSTUVWXY
K: KLMNOPQRSTUVWXYZABCDEFGHIJ

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

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

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

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

// ************************************************** 
//                                                    
//      レポート課題                                    
//      2019.01.28                                    
//                                                    
// ************************************************** 
//                                                    
//      学生番号:                                     
//                                                    
//      氏名:                                         
//                                                    
// ************************************************** 
//                                                    
//      
              
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{	
	srand((unsigned) time(NULL));
	
	printf("My student number: s186099\n\n");
	
	int i, j, letter;
	
	for(i=1; i<=10; i++)
	{
		letter = rand() % 26;
		printf("%c: ", letter + 65);
		
		for(j=0; j<=25; j++)
		{
			printf("%c", (j + letter) % 26 + 65);
		}
		
		printf("\n");
	}
	
	printf("\n-----------------------------\n\n");
	
	return 0;
}


Back