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

Back


アルファベットの大文字もしくは小文字を1文字乱数により発生させて,関数を使ってそれを大文字なら小文字に,小文字なら大文字に変えて表示するプログラムを,三項演算子を活用して if 文もしくは switch 文を一切使わないで作成してください.

My student number: s186099

An original letter: T
Changed into : t

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

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

大文字か小文字かどちらでも発生させるためには,その部分に関しても rand() が必要です.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください.

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


解答例

    // ************************************************** 
    //                                                    
    //      プログラミング入門II レポート課題                                    
    //      2019.4.22                                    
    //                                                    
    // ************************************************** 
    //                                                    
    //      学生番号:                                     
    //                                                    
    //      氏名:                                         
    //                                                    
    // ************************************************** 
    //                                                    
    //      
                  
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int change(int c);
    
    int main(void)
    {
    	srand((unsigned) time(NULL));
    	
    	printf("My student number: s186099\n\n");
    	
    	int letter;
    	
    	letter = rand() % 26 + rand() % 2 * 32 + 65;
    	
    	printf("An original letter: %c\n", letter);
    	
    	printf("Changed into : %c\n", change(letter));
    	
    	printf("\n-------------------------\n");
    
    	return 0;
    }
    
    int change(int c)
    {
    	return (c >= 97 ? c - 32 : c + 32);
    }
    


    Back