ページ 11

はじめまして。

Posted: 2012年3月16日(金) 00:32
by UTT
はじめまして。大学の課題がどうしてもうまくいかないので質問させていただきます。
問題は
与えられる2つの整数の和、差、積、商、剰余を求めるプログラムを作成してください。ただし、入力さ
れる整数は 1 以上 100 以下とします。また、求める商は小数点以下切り捨ての整数で出力してくださ
い。
入力例
19 5
出力例
19 + 5 = 24
19 – 5 = 14
19 * 5 = 95
19 / 5 = 3
19 % 5 = 4

というものです。
自分は以下のようにプログラムをかきました。

コード:

#include<stdio.h>

int main(void){

	int x,y;
	
	scanf("%d %d",&x,&y);
	
		if((100>=x&&x>=1)&&(100>=y&&y>=1))
		{
       			printf("%d+%d=%d\n",x,y,x+y);
			printf("%d-%d=%d\n",x,y,x-y);
			printf("%d*%d=%d\n",x,y,x*y);
               		printf("%d/%d=%d\n",x,y,x/y);
			printf("%d%%%d=%d\n",x,y,x%y);
		}
 		        return 0;
}	
このプログラムで一応出力例と同じ結果が出てくるのですが、
大学側のシステムからは不正解という結果が返ってきます。
おそらく「ただし、入力される整数は 1 以上 100 以下とします。」という条件を
きちんと満たせていないからだと思います(無理やりifで処理をしないようにしている状態)。

そこでなんとかこの条件を満たす方法を教えていただけないでしょうか。
また、もし他におかしな部分がありましたらご指摘いただけると幸いです。
特に関数の制限はありません。
よろしくお願いします。

Re: はじめまして。

Posted: 2012年3月16日(金) 01:05
by tk-xleader
たぶん、「入力が間違っている場合には、再入力を促すようにしろ」ということではないでしょうか?
だとすると、do-while文が丁度うまく使えると思います。
とは言うものの、問題文から言っても、UTTさんのプログラムで十分に解答として条件を満たしているはずなんですけどね。

Re: はじめまして。

Posted: 2012年3月16日(金) 01:46
by ISLe
UTT さんが書きました:このプログラムで一応出力例と同じ結果が出てくるのですが、
わたしには演算子や等号の前後の空白が無いように見えますが。

この手の問題で「入力される整数は 1 以上 100 以下とします」というのは、それ以外の入力を考えなくて良いという意味だと思いますけど。

Re: はじめまして。

Posted: 2012年3月16日(金) 13:03
by UTT
ISLeさん、tkmakwins15さん御回答ありがとうございます。

ISLeさんの言う通り空白の未入力が原因でした。

初歩的なミスではありましたが、ここで質問させていただいたおかげで無事解決しました。

今後ともよろしくお願いします。