C 编译器之间的不同输出
我正在做Euler项目的第一个问题 我有以下代码: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 {
#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
编译会指示问题。