我有以下結構:奇怪的結果
typedef struct number
{
int x;
int y;
int z;
unsigned long int final;
}number;
我的代碼如下:
number* numbers;
numbers= (number*)malloc(sizeof(number));
scanf("%d %d %d", &numbers->x, &numbers->y, &numbers->z);
printf("input: %d,%d,%d\n",numbers->x, &numbers->y, &numbers->z);
numbers->final=(numbers->x)*4000 + (numbers->y)*50 + (numbers->z);
printf("final: %d",numbers->final);
但輸出是錯誤的。例如這裏是一個運行:
12 12 12
input: 12,12,12
final: -28640
我無法找出問題。數量 - >最終可以得到的最高數字是90,000(我確定它,因爲我給出的輸入)...我似乎有重疊?請幫忙。
'final'是'unsigned'和你'printf'這是簽署'int's使用'%D'。 –
粘貼的代碼副本與輸出無關,請粘貼您的真實代碼。 – ouah
我會如果我可以使用打印屏幕,但我不能作爲該網站不會讓我。 – user106453