, şu şekilde değiştirildi: Bu kod bana doğru bakarC Programm çıkışı tamamen nedeniyle bir dizi için en yüksek bitişik değerini belirler Burada bu C programı kodu var ilgisiz, boş printf ifadesinde
#include <stdio.h>
int inputs[8];
int calcSum(int i, int j);
int main(void) {
int i, j, maxSum = 0, tempSum = 0;
int length = sizeof(inputs)/sizeof(inputs[0]);
for(i=0;i<length;i++) {
scanf("%d", &inputs[i]);
}
for(i=0;i<length;i++) {
for(j=i;j<length;j++) {
tempSum = calcSum(i,j);
if(tempSum > maxSum) {
maxSum = tempSum;
}
}
}
printf("%d\n", maxSum);
return 0;
}
int calcSum(int i, int j) {
int c, sum;
for(c=i;c<=j;c++) {
sum+=inputs[c];
}
return sum;
}
olsa da, yanlış bir sonuç verir. tempSum = ...
ve if(tempSum >...)
arasındaki her türlü printf("")
(boş olabilir) ekleyerek örnekleme, tüm test durumları için kod çıktısını doğru cevabı yapacaktır. Tüm kodu sıfırdan yeniden yazdım ve hala aynı sorunu aldım. Örneğin, sayı dizisi: 5 2 -1 -2 -4 3 5 -6, çıktı olarak 8, printf("")
eklendiğinde yapar, aksi halde 38 ... çıktı ve neden olduğunu bilmiyorum. Nerede yanlış gittiğimi açıklayabilir misiniz? Bu kodda
Olası yinelenen: [Nasıl bir programın bir ad, diğer şeyler arasında, Bu sonucu etkiler misiniz?] (http://stackoverflow.com/questions/36184965/how-can-a-name-of-a-program-among-other-things-affect-this-result#comment60005389_36184965) –