プログラミング入門 宿題 2017.11.06

Back


1か0のどちらかの数を乱数により発生させることを2回行い,それらの数の論理和と排他的論理和を答えるプログラムを作成せよ.なお,今回はC言語に標準で備わっている「ビット演算子」は使用しないものとする.

論理和排他的論理和
数1数2OR数1数2XOR
000000
011011
101101
111110

My student number: s174099

1 + 1
OR -> 1, XOR -> 0

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

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

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

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


解答例

/* ************************************************** */
/*                                                    */
/*      プログラミング入門                            */
/*      レポート課題                                  */
/*      2017.11.06                                    */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      学生番号:                                    */
/*                                                    */
/*      氏名:                                        */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      この行以降に解答のプログラムを書くこと        */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
	srand((unsigned) time(NULL));
	
	int b1, b2, or, xor;
	
	printf("My student number: s174099\n\n");
	
	b1 = rand() % 2;
	b2 = rand() % 2;
	
	if(b1+b2!=0)
		or = 1;
	else
		or = 0;
	
	if(b1==b2)
		xor = 0;
	else
		xor = 1;
	
	printf("%d + %d\n", b1, b2);
	printf("OR -> %d, XOR -> %d\n", or, xor);
	
	printf("\n-----------------------------\n\n");
	
	return(0);
}


Back