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< // 祝學習進步,更上一層樓 *(^-^)* a的資料型別是什麼?不管了,我就當是 int 型的了。a 100,a 120不成立,所以while 不執行,而while後面的內內 容是容 分號,也就是 while的內容為 空 所以結束while後執行a a 1 得a 101,列印a 101 a 100 while a 120 請注意這裡有沒有ba... 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 ... 給你修改好了 編譯通過了 你的錯誤是把case 中的數字不要加單引號。加了單引號就表示ascii碼而不是數字了所以輸出的全是error include void main 你的a是int。而的case分支都是字元型別的,如你寫的 1 實際比較的是他們的ascii碼值,所以一直不會相等。執行defau...下面程式段的輸出結果是為什麼c語言
C語言下面的程式為什麼不能執行
為什麼總是輸出error