我需要使用'long long' c 类型,将数据存储在一个非常大的数组中。由于我的代码很大,我编写了这个相当简单的代码,它有同样的问题。因此,它在循环中迭代 222 次,并在循环达到 50%(在数组中存储值)和 100%(完成时)时打印出来。
但它总是给我错误,例如在这种情况下,数组的 50% 应该打印索引 222/2 = 111,而 100% 应该打印索引 222。但是它总是打印 100 和 200。
这是我使用的简单代码,下面是结果。
#include<stdio.h>
#define S 222
int main(void){
char *text = calloc(S, sizeof(char));
unsigned long long i;
for(i=0; i<=S; i++){
text[i] = 'a';
if(i == (S/100)*50)) {printf("50percent\t and index : %llud index should be 111" ,i );}
if(i == ((S/100)*100)){printf("100percent\t and index : %llud index should be 222", i);}
}
return 0;
}
所以我想知道,如果我做错了什么,或者这个问题是否有逻辑解释。
谢谢你。