Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 编译器之间的不同输出_C - Fatal编程技术网

C 编译器之间的不同输出

C 编译器之间的不同输出,c,C,我正在做Euler项目的第一个问题 我有以下代码: #include <stdio.h> int main() { int number; int sum; while (number < 1000) { if (number % 3 == 0 || number % 5 == 0) { sum += number; number++; } else {

我正在做Euler项目的第一个问题

我有以下代码:

#include <stdio.h>

int main() {
    int number;
    int sum;
    while (number < 1000) {
        if (number % 3 == 0 || number % 5 == 0) {
            sum += number;
            number++;
        }
        else {
            number++;
        }
    }
    printf("The answer is %d", sum);
    return 0;
}
#包括
int main(){
整数;
整数和;
而(数量<1000){
如果(数字%3==0 | |数字%5==0){
总和+=数字;
数字++;
}
否则{
数字++;
}
}
printf(“答案是%d”,总和);
返回0;
}

当我通过compileonline.com编译这个时,我得到了233168。当我在gcc中编译它时,我得到了2686824。造成这种差异的原因是什么?

Compileonline可能会初始化变量

您必须手动初始化它们

#include <stdio.h>

int main() {
    int number = 0;
    int sum = 0;
    while (number < 1000) {
        if (number % 3 == 0 || number % 5 == 0) {
            sum += number;
            number++;
        }
        else {
            number++;
        }
    }
    printf("The answer is %d", sum);
    return 0;
}
#包括
int main(){
整数=0;
整数和=0;
而(数量<1000){
如果(数字%3==0 | |数字%5==0){
总和+=数字;
数字++;
}
否则{
数字++;
}
}
printf(“答案是%d”,总和);
返回0;
}

Compileonline可能会初始化变量

您必须手动初始化它们

#include <stdio.h>

int main() {
    int number = 0;
    int sum = 0;
    while (number < 1000) {
        if (number % 3 == 0 || number % 5 == 0) {
            sum += number;
            number++;
        }
        else {
            number++;
        }
    }
    printf("The answer is %d", sum);
    return 0;
}
#包括
int main(){
整数=0;
整数和=0;
而(数量<1000){
如果(数字%3==0 | |数字%5==0){
总和+=数字;
数字++;
}
否则{
数字++;
}
}
printf(“答案是%d”,总和);
返回0;
}

Compileonline可能会初始化变量

您必须手动初始化它们

#include <stdio.h>

int main() {
    int number = 0;
    int sum = 0;
    while (number < 1000) {
        if (number % 3 == 0 || number % 5 == 0) {
            sum += number;
            number++;
        }
        else {
            number++;
        }
    }
    printf("The answer is %d", sum);
    return 0;
}
#包括
int main(){
整数=0;
整数和=0;
而(数量<1000){
如果(数字%3==0 | |数字%5==0){
总和+=数字;
数字++;
}
否则{
数字++;
}
}
printf(“答案是%d”,总和);
返回0;
}

Compileonline可能会初始化变量

您必须手动初始化它们

#include <stdio.h>

int main() {
    int number = 0;
    int sum = 0;
    while (number < 1000) {
        if (number % 3 == 0 || number % 5 == 0) {
            sum += number;
            number++;
        }
        else {
            number++;
        }
    }
    printf("The answer is %d", sum);
    return 0;
}
#包括
int main(){
整数=0;
整数和=0;
而(数量<1000){
如果(数字%3==0 | |数字%5==0){
总和+=数字;
数字++;
}
否则{
数字++;
}
}
printf(“答案是%d”,总和);
返回0;
}

number
sum
未初始化,因此行为未定义。使用
gcc-Wall
编译将指示问题。
number
sum
未初始化,因此行为未定义。使用
gcc-Wall
编译将指示问题。
number
sum
未初始化,因此行为未定义。使用
gcc-Wall
编译会指示问题。
number
sum
未初始化,因此行为未定义。使用
gcc-Wall
编译会指示问题。