法演算
Posted feedbacks - C
適当に書いてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include <stdio.h>
int normalize(int num,int law){
num%=law;
if(num<0) num=law+num;
return num;
}
void calc(char* expression ,int law){
int num1;
char c;
int num2;
int ret;
ret=sscanf(expression,"%d %c %d =",&num1,&c,&num2);
if(ret!=3||(c!='+'&&c!='-'&&c!='*')) {
printf("数式エラー:%s\n",expression);
return;
}
if(c=='-'){
num2*=-1;
c='+';
}
normalize(num1,law);
normalize(num2,law);
if(c=='+'){
num1+=num2;
}else{
num1*=num2;
}
printf("%s%d\n",expression,normalize(num1,law));
}
int main(){
char expression[][20]={
//足し算
"1+2= ",
"7 + 3 = ",
"11 + 12 = ",
//引き算
"3 - 2 = " ,
"2 - 3 = ",
//掛け算
"2 * 3 = ",
"11 * 12 = ",
"18 * 39 = ",
//対応していない割り算
"1 / 3 = ",
""
};
int i=0;
while(expression[i][0]){
calc(expression[i],10);
i++;
}
return 0;
}
|

ihag
#4808()
Rating2/2=1.00
ここでいう法演算とは,与えられた数(ここでは「法」と言います)で剰余をとりながら行う計算のことです.たとえば,法が10である場合,以下のように計算します.
式と法を与えたときに,このような法演算を行い,計算結果を表示するプログラムを作成してください.
注意点
プログラムの出力として,計算結果を表示して下さい.
[ reply ]