1樓:網友
錯誤說明在題目中間,主要是你的陣列下表,應從0開始。若用於測試,取10就足夠啦。
#include
int main()
int n,i,j,b,m;
int a[100];
scanf("%d",&n);
for(i=0;iscanf("%d",a[i]);
for(j=0;jfor(i=0;iif(a[i]m=a[i];
a[i]=a[i+1];
a[i+1]=m;
b=a[0]+a[1];
for(i=2;ib=2*b+a[i];
printf("%d",b);
return 0;
2樓:流風迴雪
把。for(i=1;i<=n;i++)scanf("%d",a[i]);
改成。for(i=1;i<=n;i++)scanf("%d",&a[i]);
樓主大意了,需要傳指標的。
並且陣列從0開始比較好,空間得以充分利用,建議進行進一步修改。
3樓:孤松獨海
改為 int main()
int n,i,j,b,m;
int a[100];
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",a[i]);
for(j=1;j<=n;j++)
for(i=1;iif(a[i]b=a[1]+a[2];
for(i=1;i<=n;i++)
printf("%d",b);
return 0;
雖然改了 但是你的輸入不符合標準。
陣列應該是從0開始的a[0]
c語言程式執行崩潰
4樓:mexico卡卡
這種情況叫做 runtime error (執行時錯誤)。
runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。
比如說:除以零。
陣列越界:int a[3]; a[10000000]=10;
指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10;
使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10;
陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]
c語言程式設計,編譯無錯,執行出錯
5樓:網友
你的程式有3個問題:
1 你所謂的執行時問題,即棧溢位(stack overflow), 解決方法是使用c語言的函式(相當於c++的new操作符)在堆上分配記憶體(當然最後根據輸出檔案的答案來看,你確實資料給大了)
2 邏輯問題,如樓上各樓所說:
s[i]=s[i-1]+a[i];而不是s[i]=s[i-1]+s[i];
你中學數學知識都忘了。。。
3 還是邏輯問題,不改會讓你的檔案始終輸出0 0 0if(s[i]<100&&s[i+1]>=100)b[0]=i;
這種型別的應改為:
if(s[i-1]<100&&s[i]>=100)b[0]=i-1;
這是因為你的邏輯裡,每次剛給s[i]賦值,此時s[i+1]還沒賦值呢,不能使用。
總的改好的如下,我也加了簡單的中文註釋:
#include
#include // malloc和free函式需要這個標頭檔案int b[3];
void writedat();
void jsvalue( )
/釋放malloc 分配的記憶體。
free(a);
free(s);
void main()
void writedat()
6樓:網友
你這裡有幾個問bai題:
1。你的陣列du定得這麼大,zhi
計算機根本dao不可能接受;
2。因為內只是對m值進行比較判斷,所容以不應用for 迴圈而用do while 較好。
試改寫如下:
a[0]=1;
a[1]=1;
n=3;s=2;
do while s<100
然後寫入b 陣列。
再重置a陣列,重做二次,將迴圈判別值改為1000,10000即可。
7樓:匿名使用者
你的第二。
個迴圈中當i=0時s[i-1]為s[-1],所以就會回出錯,幫你改了答一點點。
void jsvalue( )
8樓:網友
第二層迴圈沒有必要吧。
你每次算出乙個a[i],同事就可以算出來s[i]了而且,s[i]=s[i-1]+a[i];而不是s[i]=s[i-1]+s[i];
以上兩點,希望能有參考價值。
c語言程式一執行就崩潰是什麼情況
9樓:天枰非官
這種情況叫做 runtime error (執行時錯誤)。
runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。
比如說:除以零。
陣列越界:int a[3]; a[10000000]=10;
指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10;
使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10;
陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]
10樓:網友
有非法的記憶體訪問,一般是空指標、野指標問題。
11樓:聽不清啊
這是因為程式寫錯了。比如int a; scanf("%d",a);
C程式編譯
include stdio.h void list int n int i,j for i 1 i n i for j 1 j i j printf d d 4d j,i,i j printf n void main list 9 include void main int i,j,k i與j相乘,...
c 程式編譯錯誤 菜鳥求解,C 程式編譯錯誤 菜鳥求解
凌晨 純手打 很辛苦的。望採納 編譯成功和你要求輸出的格式是一樣的 不明白的訊息我 輸入方法 其實本程式任意輸入16個字元都不會出錯,這樣輸出是為了迎合你的輸入格式要求 a 空格 空格 空格 回車 cmsd 回車 lmx 空格 回車 end 空格 回車 ps 保留了你寫的char bijiao ch...
linux下編譯c 程式報錯no such file or directory是什麼原因
你在編譯的時候沒有加上必須的編譯選項吧?你再仔細檢查一下,比如說 用到數學的庫函式時,在命令列編譯中必須加上 lm 才行。沒有這個檔案或目錄的,所以不能操作 linux下編譯出現這個bash configure no such file or directory 怎麼解決 1 開始以為是sh路徑問題...