求C語言程式設計高手。為什么我在執行insert時會陷入死迴圈?還有,幫忙看看有沒有錯誤

2023-02-27 00:45:21 字數 3692 閱讀 1743

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.風格不規範,估計...