私はUbuntuを搭載したノートパソコンの小さな仕事のためのプログラムを書いています。私はプログラムを書くときに何の問題もありませんでした。それは完璧にうまくいって、必要なものすべてをやった。しかし、私はそれを私のWindows PCに移したとき、それは私にいくつかの非常に奇妙な値を与えました、そして、私はそれが何が間違っているか把握するように思われます。 UbuntuとWindowsの両方で、同じIDE、CodeBlocks 16.01を使用します。私は数時間この問題を解決しようとしていたが、私は本当にいくつかの助けに感謝するつもりです。Cプログラムは、Windowsで奇妙な値を与える動作していますが、Ubuntuでうまく動作します。
たとえば、すべてのプロンプトで値50を入力すると、50 + 50 + 50 + 50が200に等しいので、whileループの後に両方のprintfメソッドで200の結果が得られます。しかし私はtotal_weightで240、total_heightで100を得ます。これは私には意味がありません。これの原因は何ですか?あなたのコードで
#include <stdio.h>
#include <stdlib.h>
int main()
{
int weights[3], heights[3], i = 0;
int total_weight, total_height;
while (i <= 3)
{
printf("Person %d, enter your weight (kg): ",i+1);
scanf("%d",&weights[i]);
printf("Person %d, enter your height (cm): ",i+1);
scanf("%d", &heights[i]);
//Calculations for total weight and total length of all the people
total_weight = total_weight + weights[i];
total_height = total_height + heights[i];
printf("\n\tPerson %d's weight and height: %dkg, %dcm\n\n", i+1, weights[i], heights[i]);
i++;
}
//Printing the results of the earlier calculations
printf("\tTotal weight of everyone: %d\n", total_weight);
printf("\tTotal height of everyone: %d\n", total_height);
return 0;
}
'int型total_weight、total_heightにコードを変更することができます;' - あなたはtotal_weightとtotal_heightの値は、この行の後は何だと思いますか? – immibis