1樓:匿名使用者
兩個問題:
1.輸入k之後 ,要重新將 p 指向 a 即10行前+一句 p = a;
2.最後一個for越界,i=9 時 p+i+1 就成了 p+10
2樓:匿名使用者
「baifor(p=a;p-a<10;p++)」這個迴圈du已經讓p指向zhi了陣列中最後一個元素,所以「for(i=k;i<10;i++)」在這個迴圈之前應該讓daop重新指回陣列的內第一個元素,故改為for(i=k,p=a;i<10;i++)
另外 刪除一個元素之後 陣列中只有9個元素,所容以應當把a[9]賦值為'\0'或者在最後一個迴圈中控制條件改為p-a<9
已有定義int a[10]={1,2,3,4,5,6,7,8,9,10} 要求通過指標完成從一維陣列中刪除下標為k的元素
3樓:聽不清啊
#include
void main()
;int i,k,n=10,*p=a;
printf("input k=");
scanf("%d",&k);
for(i=k-1;i*(p+i)=*(p+i+1);
n--;
printf("after delete:\n");
for(i=0;iprintf("%d ",a[i]);
printf("\n");
}dao
c語言問題:已有定義int a[10]={1,2,3,4,5,6,7,8,9,10} 要求通過指標完成從一維陣列中刪除下標為k的元素
4樓:郯安陽郝北
a中存放
的是陣列a[10]中元素的地址,而對於二維陣列intx[3][4],*p;
p=*x,
x[0],
x[1],
x[2]存放的是陣列x[3][4]種元素的地址,x存放的的是x[0]的地址,也就是地址的地址。所以在二維陣列定義的時候可以寫成p=x[0]卻不能寫成p=x而是在前面多一個*號,*x為元素地址,而x位地址的地址
5樓:以辰良況樹
兩個問題:
1.輸入k之後
,要重新將p指向
a即10行前+一句p=
a;2.最後一個for越界,i=9
時p+i+1
就成了p+10
???c語言問題int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;不能表示a陣列元素的是?a.*pb.a[10]c
6樓:匿名使用者
定義陣列並賦值時c語言規定下標是這樣的,a[n]中的n個元素應該是a[0]....a[n-1],
由此可見答版案b中a[10]已經超過規定權的範圍,故不能表示陣列a中的元素。答案a中因為指標p指向陣列首地址,所以*p相當於a[0]這個元素
7樓:聽不清啊
b.a[10]
這超出了陣列的下標範圍。
8樓:匿名使用者
b不可以、越界了
a可以,*p = a[0]
c看不到
c語言問題 若有說明int a[][4]={1,2,3,4,5,6,7,8,9};,則陣列a第一維
9樓:格子裡兮
若有說明int a[][4]=;則陣列a第一維是3。
定義陣列並賦值時c語言規定下標是這樣的,a[n]中的n個元素應該是a[0]....a[n-1]。。
因此int a[4]的寫法就是表示,第一維大小沒限制,但是第二維陣列大小就是4,也就是int a[4]=,,},明顯是3。
分析:二維陣列的一維大小,即指二維陣列的行數,在本題中,按行對二維陣列賦值,因此內層有幾個大括號,陣列就有幾行。
10樓:杜爺1號
答案是b,3.
int a[4]的寫法就是表示,第一維大小沒限制,但是第二維陣列大小就是4,也就是int a[4]=,,},明顯是3.
11樓:小兆
你定義的就是一個二維陣列,第二維的個數是4,為了把所有的資料能分成四份有沒有遺漏,那第一維就是3了。
12樓:寂寞的菸頭哥
首先看陣列後面為4表示有四列二維陣列是
1234
5678
9000
這裡就可以很明顯的看出是三行,所以就是a[3][4],第一個叫做第一維,第二個叫做第二維
若有以下定義和語句: int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 則不能表示a陣列元素的表示式是( ) a) *p b)
13樓:墨汁諾
不能表示a陣列元素的表示式是( b) a[10] )----因為陣列a的最大下標只能是9,即a[9],
a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],一共10個元素。
a、*p ---表示取p指標指向的單元的值,即表示取陣列a的首個元素a[0]的值。
b、a[10] ---因為陣列a一共10個元素,從0開始計數,
即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10個,沒有a[10],所以a[10]就是不能表達這個陣列元素。
c、*a ----陣列名a中儲存的是陣列的首地址,*是取單元中的值,*a就是取陣列首地址中單元中a[0]的值。
d、a[p-a] --- p指向的是陣列a,因為p中與a同資料相同都是陣列a的首地址,而p-a就等於0,因此 a[p-a]就相當於a[0]。
14樓:匿名使用者
選b)a[10] a[0]、a[1]、a[2]……a[9]分別是陣列a[10]的十個元素,故a[10]不能表示a陣列的元素。
15樓:匿名使用者
選 b a[10]
陣列是從a[0] 到 a[9] 的。。。。。。
(c語言) 有陣列的定義 int a[10]={1,4,5,3,6,8,9,4,7,2};現要求從鍵盤輸入x,並從陣列中刪除它。
16樓:万俟秋英謇詩
上面回答的光覆蓋是不行的,需要將最後覆蓋的那個值給清零(如果零不是你的輸入值)才成!還有就是如果是輸入的值和a[9]相等,你陣列就會訪問越界的!
c語言題目已有定義inty10py則能使的
a選項是錯的,baix是整型 du,p是指標型別,賦值之後x的值 zhi是daoy的記憶體地址,不會是10。專b選項是錯的屬,同樣,執行賦值之後x的值是p的記憶體地址,不會是10。c選項是錯的,因為這個賦值過程和a選項的賦值過程是等價的,所以錯誤的原因也是一樣的。d選項是對的,沒有為什麼。x是整數,...
大一C語言題目若有定義語句 int a
核心在於p的型別。定義等效於 int p 3 這裡p是一個陣列,包含三個元素,每個元素型別為int 所以a p為陣列名,不可以賦值。b p 0 為int 而a為二維陣列名,等效於int 型別不匹配。c a 1 2 為a的一個元素,型別是int,所以 a 1 2 是int 和p 0 型別相同,所以這個...
C語言 若有定義 int a 7 float x 2 5,y 4 7則表示式x a 3 int x y
按照加減乘除運演算法則及順序,還有結果轉換型別為float,結果為2.5 x a 3 int x y 2 4 x 1 7 2 4 x 1 4 x 若有定義 int a 7 float x 2.5,y 4.7 則表示式x a 3 int x y 2 4的值是 請詳細解答,非常感謝 答案為2.5.這個關...