2桁の整数を3つ乱数で発生させ,それぞれ m, n, p とする.また,3 桁の整数を1つ乱数で発生させ,それを q とするとき,m * n と q / p (整数型)を求める.前述のようにプログラム中にかけ 算 * と割算 / を使用しないこと.
My student number: s114099 m=86, n=23, m*n=1978 p=17, q=208, q/p=12 -------------------------------------- | |
かけ算が足し算の繰り返しであることは理解しやすいと思います.割算は何回引 けるか,という引き算で実現できます.
/* ************************************************** */ /* */ /* 情報科学演習 C6 C7 */ /* レポート課題 */ /* 2011.11.28 */ /* */ /* ************************************************** */ /* */ /* 学生番号: */ /* */ /* 氏名: */ /* */ /* ************************************************** */ /* */ /* この行以降に解答のプログラムを書くこと */ #include <stdio.h> #include <stdlib.h> #include <time.h> main() { srand((unsigned) time(NULL)); int m, n, p, q, i, pro=0, div=0; m = rand() % 90 + 10; n = rand() % 90 + 10; p = rand() % 90 + 10; q = rand() % 900 + 100; printf("My student number: s114099\n\n"); printf("m=%d, n=%d, m*n=", m, n); for(i=1; i<=n; i++) pro += m; printf("%d\n", pro); printf("p=%d, q=%d, q/p=", p, q); for(; q>=p; ){ q -= p; div++; } printf("%d\n\n", div); printf("--------------------------------------\n\n"); return(0); } |