我想獲得任何兩個值的所有倍數的總和。C編程:scanf是否沒有像整數那樣讀取值0和1?
我用scanf
向用戶請求兩次整數值。
在代碼和算法我創作的作品如預期除了當用戶將0和/或1
輸入值I希望計算機能夠接受零值,並導致總共爲零,當接受1時,總數爲1但是0給我奇怪的崩潰,1給我一個很大的價值。
/*multiples of 3 or 5: 3,5,6,9; sum is 23*/
#include <stdio.h>
int main()
{
int value,value2,limit = 1000;
int i,divi,sum = 0;
/*read user input for the first value*/
scanf("%d",&value);
/*get sum of all multiples of value*/
for(i = value;i < limit;){
sum = sum + i;
i = i + value;
}
printf("%d\n",sum);
printf("done for %d\n",value);
/*read user input for the second value*/
scanf("%d",&value2);
/*get sum of all multiples of value2*/
for(i = value2;i < limit;){
divi = i%value;
if((divi)==0){
i = i + value2;
}
else
{
sum = sum + i;
i = i + value2;
}
}
printf("%d\n",sum);
printf("done for %d\n",value2);
return 0;
}
適用於我的除0之外的所有值,這將導致無限循環;我從未增加。 – this