在C语言中,除法的类型转换

3
#include <stdio.h>
int main(void) {
    int t;
    long long int a[100000], n, i;
    scanf("%d\n", &t);
    while(t){
        t--;
        scanf("%d", &n);
        printf("%ld\n", n);
        n = n * (n-1);
        printf("%ld\n", n);
        n = n/2;
        printf("%ld\n", n);
    }
    return 0;
}

无法解决除法问题。第三个printf语句返回垃圾值。您能否帮我确定问题出在哪里?


1
最好为大型数组确保堆空间。 - BLUEPIXY
1个回答

5
long long int 的格式说明符是 lld,而不是 ld
scanf 中尤其重要,因为使用错误的说明符可能会将数据放入变量的错误字节中。

谢谢!使用lld作为scanf和printf语句的问题就在这里。 - Vikas Sangle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接