編譯沒有錯誤但運行不了
因為你的c沒有初值,while循環無法進行。另外你的演算法也有問題,while循環可改為while(m%n!=0),循環結束後最小公約數時n。
B. 編譯器通過了程序卻無法運行
你的頭文件有錯誤:修改如下
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "malloc.h"\\此處有修改
typedef struct node
{
int data;
struct node *next;
}NODE;
main()
{
NODE *head=NULL,*q;
int i;
for(i=0;i<10;i++)
{
q=(NODE*)malloc(sizeof(NODE));
scanf("%d",&q->data);
q->next=head;//從表頭插入節點
head=q;
}
printf("鏈表遍歷\n");
q=head;
while(q!=NULL)
{if(q->next!=NULL)
printf("%d->",q->data);
else
printf("%d",q->data);
q=q->next;
}
getch();//輸入代碼
}
C. 編譯的C語言程序沒有錯誤就是運行不了怎麼回事
編譯上只是在語法上沒有錯誤
但是運行的時候不符合邏輯等等的就會出錯
就比如樓上說的那種
D. 編譯沒問題,但運行時怎麼會出現錯誤呢
可能是指針越界,定義的數組不夠大,訪問了數組以外的數據。
比如定義了char a[10]; 而你的某個循環代碼訪問了a[20],或者a[-1]之類的。
E. 為什麼C語言程序編譯正確但不能執行
這哪是編譯正確,這是有一個語法錯誤的意思,這樣的程序是無法運行的。
最後一句的語法錯了
應該是printf("%4d
%d\n",i,slect[i]);
雙引號中間是格式控制字元串,用於控制輸出的字元串以及變數的格式,
變數需要放在雙引號外頭,用逗號分隔。
F. 程序編譯過了,但是無法運行出結果是怎麼回事
編譯過了沒錯誤,說明你的代碼語法沒錯誤。運行結果不對,是你的代碼邏輯有問題,仔細檢查代碼邏輯流程是不是不對,調試調試。
G. C語言為什麼沒錯誤還執行不了
c語言的錯誤分為兩種,一種是運行時錯誤,一種是邏輯上的錯誤。邏輯上的錯誤不好判斷,執行不了肯定是出現邏輯上的錯誤的。
H. 為什麼編譯沒有錯誤,運行卻有錯誤
編譯沒有錯誤是因為你的程序語法沒有錯誤.
而運行時則有可能出現邏輯錯誤.
比如說C#里最常見的"未將對象引用設置到對象的實例",就是說一個對象並沒有實力化,或者沒有值就去引用了.
再比如連接資料庫,語法正確,但是運行時卻因為SQL未啟動或者連接字元串拼寫錯誤而發生異常.