1樓:匿名使用者
因為你主函式中「while(con!='o')」始終是成立的,你並沒有在一次操作(比如:insert(),divide()等)後再要求輸入con的值
也就是說你的con值就沒改變過~
c語言程式問題,為什麼這個程式會陷入死迴圈
2樓:網友了了了
因為你超出陣列邊界了,a[10]指的是a[0]到a[9],你用到了a[10],就會陣列越界
3樓:匿名使用者
陣列a[10]是從a[0]到a[9],將a[10]賦值為0不太對
c語言程式設計,二分法求解函式,陷入死迴圈。請大神幫忙看看錯在**?
4樓:馮老師(必果學院
你的r是多少?
那些常量是多少?
mae=d_a;
d_b=(d_a+d_b)/2;
d_difference=d_c;
printf("d_b=%f\n",d_b);
這段**只被執行了一次
急急急,c語言程式沒有錯誤,為什麼程式執行時總停止工作
5樓:∥熊筱梟
是不是你定義的陣列在主函式裡?棧溢位了。儘量把陣列定義在主函式外,防止溢位。否則就有可能停止工作。
6樓:問心
就是 程式錯誤吧 或者換個執行環境
比如把 vc++ 6.0 換成 turbo c ,..
有些程式只能在 turbo c 下執行
7樓:忽忽上升
那就是程式有錯誤,比如記憶體分配錯誤啥的。
8樓:谷歌瀏覽器
我也有同樣的問題有大神可以解答嗎?
c語言問題!!求高手!!執行時務必要沒有錯誤!!
c語言,莫名陷入死迴圈,大神們戳進來
9樓:
scanf("%d", &k),
當輸入字元的時候,輸入快取內沒有數字,scanf就讀取不成功,k仍然保留了原來的值,下次再次呼叫scanf時,由於輸入快取中仍然還殘留上次輸入的字元,所以仍然讀取不成功,k仍然保留原來的值。用fflush(stdin)清空一下快取就可以了。
void shownumber(seat * seats)}printf("還有%d個空座位\n",count);
printf("\n重新整理資訊,請輸入1;返回主選單輸入2\n");
fflush(stdin); /*這裡清空一下快取*/scanf("%d",&k);
}while (k != 2);}
10樓:匿名使用者
while中判斷的是k!=2, 但k從定義為int k=0後再沒修改過,所以k!=2是一直為true的,所以do就要一直執行了,即死迴圈。
需要在do中對k值進行修改,比如k++;
在c語言中執行程式時最常出現的有那些錯誤?
有沒有c語言高手幫我看看這個程式**出錯了(構建線性連結串列,實現對其插入刪除的操作)
11樓:我是田間少年
下面是根據你的**修改的,以後儘量不要用字母「l」(小寫的l)作變數,容易跟數字1弄混,且不方便閱讀。還有寫的時候注意指標的用法,如果你要修改引數,就要用這個變數的指標,此處就為二級指標,因為要傳送的形參已經是個指標了。
**:#include
#include
typedef struct lnode
lnode,*linklist;
//尾插法建立帶表頭節點的單鏈線性表,注意,第一個引數為指向連結串列指標的指標,是個二級指標
void createlist(linklist *head,int n)
// end if
else // 連結串列不為空時
// end else
p=q; // p 指向新的表尾結點
}p->next = null; // 表尾結點的next賦值為空
}// 連結串列列印函式。由於列印函式不修改連結串列,所以引數為指向連結串列的指標,是個一級指標
void print(linklist head)
// end if
// 連結串列不為空時
linklist q; // 定義迴圈指標變數
q=head; // 把 頭結點指標賦給 q
while(q!=0) // 直到連結串列結束,while才結束
// end while
}//在指定位置處插入一個節點
void listinsert(linklist *head,int i,int e)
// end if
// 不在表頭插入的情況
p=*head;
j=1;
while( ((p->next)!=null)&&(j // end while
if(j // end if
else // 插入位置合理時
// end if
else // 在表中間插入
// end else
} // end else
}// 刪除結點函式。第一個引數為一個二級指標,因為要修改連結串列。
void listdelete(linklist *head,int i)
// end if
// 連結串列非空時
linklist q=null;
if(i==1) // 刪除的表頭
// end if
// 刪除的不是表頭的情況
linklist p=null;
int j;
// q=(linklist)malloc(sizeof(lnode));
p=*head;
for(j=1;(jnext->next!=null);) // 迴圈結束後1)如果刪除位置合理,j=i-1。另外,若要刪除的是表尾元素,
// 則同時p->next=null 2) 若刪除位置不合理,則jnext為null
// end for
if(jprintf("刪除位置不合理\n");
else // 要刪除元素的位置合理
// end if
else // 要刪除的是表中間的元素
// end else
} // end else
}// 主函式
void main ()
執行結果:
c語言中死迴圈怎麼解決?
12樓:一籃子陽春白雪
c語言中死循bai環怎麼解決?
du首先應該將對應的
zhi退出條件置為恆為真,然dao後按照「while迴圈」專「屬for迴圈 」「do-while迴圈」三個迴圈模式分別描述。
在這個過程中,還要注意管理好迴圈控制變數,使while 的條件有機會為false,或在迴圈體中加入break,並使它有機會執行。
另外,也可以設定迴圈計數變數。為了防止程式出現死迴圈,最好是自習檢查程式,保證邏輯正確。如果不放心的話,可以設定迴圈計數變數,嵌入迴圈,當溢位上限時停止程式並報錯。
需要說明的是,死迴圈儘量少用。如果一定要用死迴圈,也要在迴圈體內設定退出條件(break)。
C語言程式設計的問題求高手指點指出我錯在哪
struct score的定義後面忘bai加分號了dupaixun函式宣告的是有引數zhi的,你呼叫時沒寫參dao數 paixun函式裡的struct t要改內成struct student t。而且struct只需要在定義時容寫,後面使用t的時候直接寫t就行了,不用寫struct t 發現復幾個錯...
C語言程式設計問題,求高手解答遇到輸入非法字元時,怎麼處理
include include include include regex.h const int max len 1000 去掉字串兩端的空格 char trimstring char guessstring 尾部空格 while rear 0 guessstring rear guessstri...
計算機二級C語言程式設計題,為什麼我執行結果是對的,但被系統強行停止了呢
1.檔案讀寫有問題,沒有fp null的判斷,若目標檔案不存在,將導致指標異常崩潰。2.根本沒有初始化i的值就開始呼叫f i 3.程式效率太低,fun函式里居然用while迴圈計算一個o 2 n 的遞迴,當n規模很大時你的程式將極為緩慢。這裡顯然該用遞推計算並用陣列儲存各項的值。4.風格不規範,估計...