各変数の変化の様子

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まも
記事: 1
登録日時: 1ヶ月前

各変数の変化の様子

#1

投稿記事 by まも » 1ヶ月前

キーボードから入力された正の整数が素数であるかを判定するプログラムを作成せよ。試し割り算を使え。そのプロ グラムのフローチャートと各変数の変化の様子も書け。そ れらを用いてプログラムが正しく動いていることを説明せよ。
という問題で、変数の変化の様子をかけと言われたのですが変数の変化の様子とはイマイチどういうことかわかりません。どのようなことを書けばよいのでしょうか、どなたかご教授お願いします。

コード:

#include <stdio.h>
void main()
{
	int i, Num;
	printf("数字入力:");
	scanf_s("%d", &Num);
	for (i = 2; i < (Num / 2); i++) {
		if (Num % i == 0) {
			printf("%dは素数ではありません\n", Num);
			return;
		}
	}
	printf("%dは素数です\n", Num);

アバター
asd
記事: 317
登録日時: 9年前

Re: 各変数の変化の様子

#2

投稿記事 by asd » 1ヶ月前

ほとんど答えになってしまうので回答が難しいのですが、
このプログラムの場合、変数はiとNumの2つがあり、
・Numはscanf_s関数で値が代入される
・iはfor文内部で毎ループごとに変化する
 →入力値やループ回数によりfor文内の計算式の結果(Num / 2やNum % i)も当然変化する
ことはわかるかと思います。

なので適当なNumを入力したとして、for文ループの1回目、2回目、3回目…というように変数がどう変わるかを列挙すればいいのではないでしょうか?
(具体的な値は?にしていますしNumを9にしているのもあくまで一例です)

例)数字入力で9を入力した場合
Num=9、
forループ初期値:i=?、Num / 2=?
forループ1回目:i=?、Num % i =?、Num / 2=?
forループ2回目:i=?、Num % i =?、Num / 2=?
(略)

こうすると入力された値をもとにforループ内で計算や終了判定に用いている各値がどう変化し、
どこでループを終了するのかが見えるようになるのかなと思います。
Advanced Supporting Developer
無理やりこじつけ(ぉ

返信

“C言語何でも質問掲示板” へ戻る