2016-11-14 77 views
-5
int age[3]; 
printf("what is your age?\n"); 

scanf("%d\n",age); 

int age[3] 

age[3] =age+1; 

int year[3]; 

year[3] = year+1; 

printf("your age after %d years is %d",age,year); 
+3

您使用'age'作爲'int's陣列和在不同的地方一個'int'。而且,正如所寫的,這段代碼不會編譯。 –

+2

你的陣列僅僅是長度爲3,所以寫爲'年齡[3]'和'年[3]'超出陣列,這是*未定義的行爲*的範圍內。數組索引從「0」開始。 –

+0

一無所知這裏你的陣列的使用是正確的。你也通過聲明兩次(並忘記了一個''''')來隱藏'int age [3]',我想,我不太清楚甚至會發生什麼。我建議首先學習數組,首先,你可以從這裏開始:https://www.tutorialspoint.com/cprogramming/c_arrays.htm – yano

回答

0

首先,我沒有得到你想要做的。 但一個int數組不能被scanf("%d\n",age);

掃描你已經做的:

for(i=0;i<3;i++) 
    scanf("%d",&age[i]); 
+0

代碼的第一行(在PO的文章中是第三行)是合法的,用於掃描int到int數組的第一個元素。這是否意圖是另一回事。 – WhozCraig

0

,並

age[3] =age+1; 
year[3] = year+1; 

這裏,age[3]是INT,1也被詮釋..但「時代」是一個指針(地址),這是指向age[0]

左右,基本age+1指着age[1]的地址。 你不能在一個int型變量一個地址存儲。

+0

你不需要兩個答案:你總是可以編輯第一個答案來添加更多。 –

+0

哎呀!對不起!我是新來的.. :) –

相關問題