我正在寫一個C程序,應該添加每個數字,直到它達到一個標記值。然後把它們全部平均。如何解決分段錯誤?
林不知道問題出在哪裏,但我認爲這可能是數字永遠不會改變。任何幫助表示讚賞。
#include <stdio.h>
int sentinal = 9999;
int iterations = 0;
int total = 0;
int average;
int num;
int main(void){
do{
printf("Enter a number to add:\n");
scanf("%d\n", num);
total = total + num;
iterations++;
}while (num != sentinal);
average = total/iterations;
printf("%d\n", average;
return 0;
}
運行版本
#include <stdio.h>
int main(){
int sentinel = 9999;
int iterations = 0;
int total = 0;
float average;
int num;
while(1){
printf("\nEnter a number to add: ");
scanf("%d", &num);
if (num == sentinel){
break;
}else{
total = total + num;
iterations++;}
}
average = (float) total/iterations;
printf("%f\n", average;
return 0;
}
這個要求(參數'scanf'是by-address)完全是字面上庫函數存在的每個文本的每個初始示例。 [見此處的示例和文檔](http://en.cppreference.com/w/c/io/fscanf)。在解決這個問題的同時,可能會嘗試檢查結果以確保您的出參數被正確提取。 – WhozCraig 2014-09-04 00:51:51
您將標記添加到您的總數並計算它。你可能不希望它成爲你的總和和平均值的一部分。 – vacawama 2014-09-04 00:52:54
提示:打印'平均值'時檢查'scanf','printf'。 – user1336087 2014-09-04 01:05:08