使用同一臺機器和IDE作爲下文稱在我的其他問題(在Problems in code or my IDE/comp is bugged?第三段)一個簡單的「的」使用命令不工作只stdio庫
我嘗試運行這段代碼:
#include <stdio.h>
#define n 3
int main()
{
int i;
float values[n],sumval,svmean,tmp;
for(i=0;i<n;++i)
{
scanf("%f",&tmp);
values[i]=tmp;
sumval = sumval + values[i];
}
svmean = sumval/n;
printf("%f \n",svmean);
return(0);
}
上面的代碼應該運行該式
這意味着,它必須增加一些值,併除以第結果總數。
正如你在上面看到的,我用隨機n
職位做了一個數組,然後我要求用戶爲每個職位填寫一個值,然後將他們全部加起來並將其分開。
問題是它不起作用。無論iput是什麼,它只輸出結果7。
但如果我包含stdlib.h到代碼工作正常。
所以
- 質疑:爲什麼代碼不會僅使用 stdio.h中圖書館正常工作?哪些代碼元素確實需要stdlib.h 庫?
正如你所看到的陣列values[n]
似乎有一個隨機n
細胞數量,但實際上我已經設置此NUMER等於3(使用#define
)
- 問題B:是有一種方法可以使用相同的porpuse運行代碼,但允許用戶定義數組的大小
values[n]
或換句話說讓用戶輸入一個整數,該整數將的值設置爲values[n]
?
我在相同代碼的其他試驗中做了這些,但它似乎沒有改變任何東西(我認爲編譯器接受sumval默認值爲0),即使沒有sumval使用stdlib.h進行初始化,它工作正常。感謝您的答覆。 – John
@John錯誤的猜測。 'sumval'是一個自動變量(分配在堆棧上),這意味着它不保證被初始化爲任何特定的值,它通常會包含一些「垃圾」。 – piokuc