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

Back


2桁の正の整数を乱数により2個発生させ,それらの積を取ります.その数の約数を表示する部分を関数 divisor() として分離して約数表示のプログラムを作成しましょう.

My student number: s186099

41 x 32 = 1312
Divisors: 1 2 4 8 16 32 41 82 164 328 656 1312 

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

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

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

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


解答例

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

void divisor(int x);

int main(void)
{
	srand((unsigned) time(NULL));
	
	printf("My student number: s186099\n\n");
	
	int num1, num2;
	
	num1 = rand() % 90 + 10;
	num2 = rand() % 90 + 10;
	
	printf("%d x %d = %d\nDivisors: ", num1, num2, num1 * num2);
	
	divisor(num1*num2);
	
	printf("\n\n---------------------\n");

	return 0;
}

void divisor(int x)
{
	int i;
	
	for(i=1; i<=x; i++)
	{
		if(x%i==0)
		{
			printf("%d ", i);
		}
	}
}


Back