我正在编写一个程序,该程序应该使用长整数,例如12345678901234567890并取总和 每个数字(在这种情况下为90)的数字和数字的MOD。但是当我尝试使用此数字时,总和有效,但MOD无效。
我已经尝试将我的变量放到实际上没有用的double中。正如您在输出中看到的那样,它会一直工作到第二个7,然后变为8,然后再添加随机数。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int leesCijfer(void) {
switch (getchar()) {
case '0': return 0 ;
case '1': return 1 ;
case '2': return 2 ;
case '3': return 3 ;
case '4': return 4 ;
case '5': return 5 ;
case '6': return 6 ;
case '7': return 7 ;
case '8': return 8 ;
case '9': return 9 ;
default: return -1 ;
}
}
int modulo9(double getal){
double modulo9, negen;
modulo9 = fmod(getal, 9);
return modulo9;
}
int main(void) {
double getal=0, modulo, cijfer, som=0, tien=10;
printf("Type een groot getal:\n") ;
do {
cijfer = leesCijfer() ;
if (cijfer != -1) {
printf("%.0f " , cijfer);
som = som + cijfer;
getal = (getal * tien) + cijfer;
printf("%.0f\n", getal);
}
} while (cijfer != -1) ;
printf("\nDe som is: %.0f\n", som);
modulo = modulo9(getal);
printf("Mod 9 is: %.0f\n", modulo);
return 0 ;
}
Type een groot getal:
12345678901234567890
1 1
2 12
3 123
4 1234
5 12345
6 123456
7 1234567
8 12345678
9 123456789
0 1234567890
1 12345678901
2 123456789012
3 1234567890123
4 12345678901234
5 123456789012345
6 1234567890123456
7 12345678901234568
8 123456789012345700
9 1234567890123457000
0 12345678901234569000
De som is: 90
Mod 9 is: 3
Process returned 0 (0x0) execution time : 8.859 s
Press any key to continue.