為什麼下面的程式總是輸出的最後數字出問題

2022-03-05 11:04:47 字數 818 閱讀 6673

1樓:飛揚天遙

按照你的程式,儲存的位數是m+1,而不是m,所以向函式傳遞m時最後一位並沒有移動。

2樓:匿名使用者

多了一個,因為c中陣列是從0開始,那麼

for(i=0;i<=m+1;i++)

for(i=0;i<=m;i++)就有m+1個資料了for(i=0;i<=m;i++)這類也不對,你這類輸入了m+1個資料

3樓:匿名使用者

// 陣列中插入新資料

// lz程式中沒有容錯功能噢...加油!!

#include //c++格式

using namespace std;

void fun(int *a, int m, int pos, int x)

a[pos]=x;

}int main()

,pos,i,x,m;

int *a;

a=b;

cout<<"陣列中儲存位數m: ";

cin>>m;

cout<<"\n輸入陣列:";

for (i=0;i>b[i];

cout<<"輸入插入位置: ";

cin>>pos;

cout<<"\n插入值為: ";

cin>>x;

fun(a,m,pos,x);

for (i=0;i

cout<

cout<

// 祝學習進步,更上一層樓 *(^-^)*

下面程式段的輸出結果是為什麼c語言

a的資料型別是什麼?不管了,我就當是 int 型的了。a 100,a 120不成立,所以while 不執行,而while後面的內內 容是容 分號,也就是 while的內容為 空 所以結束while後執行a a 1 得a 101,列印a 101 a 100 while a 120 請注意這裡有沒有ba...

C語言下面的程式為什麼不能執行

b是一個指標,b是指標指向的位置。b並未指向任何位置,但是你卻為他賦值,當然出錯。char b 新增如下 char tmp b tmp b a 即可。這時候給 b賦值,就是給tmp賦值。char str char a,b a str b a printf s s a,b 這樣就對了。include ...

為什麼總是輸出error

給你修改好了 編譯通過了 你的錯誤是把case 中的數字不要加單引號。加了單引號就表示ascii碼而不是數字了所以輸出的全是error include void main 你的a是int。而的case分支都是字元型別的,如你寫的 1 實際比較的是他們的ascii碼值,所以一直不會相等。執行defau...