⑴ c語言不知道為什麼運行不了
編譯期錯誤。這是指在程序的編譯過程中由編譯程序識別或檢查出來的錯誤,常稱之為"語法錯誤"。諸如不符合規定的語句格式、對象說明與使用不一致、不正確的分隔符、不存在的標號、不正確的初始化數據、不恰當的循環嵌套等等。在編譯期發現一個錯誤後,編譯工作並不立即停止,而是盡可能多地找出源程序中的全部錯誤。
第二類,連接錯誤。這是指連接程序在裝配目標程序時發現的錯誤,通常由於函數名書寫錯誤、缺少包含文件或包含文件的路徑錯誤等原因引起的。
第三類,運行期錯誤。這是指可執行程序執行過程中發現的錯誤。如在計算過程中遇到了除數為零的錯誤、求一個負數的平方根等等。編譯系統發現這類錯誤後如無特殊指示通常告知一些適當信息,然後立即停止程序的執行。當然,為阻止這類錯誤的出現,程序設計者可在程序中編入一些由自己來檢查這類錯誤的程序段,這可能更適合於自己的處理要求。
第四類,邏輯性錯誤。這類錯誤是在編譯期、連接期和運行期都不能發現的錯誤。如程序中把log寫成了log10,把x+y寫成了x-y等。顯然編譯系統是無法查出這類錯誤的。
第五類,警告性錯誤。這類錯誤是指編譯系統在編譯階段發現程序中有一些可疑的或含混不清的地方,如源程序中發現了一個定義過但從未使用過的變數。這類情況從語法上講是正確的,因此一般不會停止編譯,在大多數情況下不會阻止目標程序與可執行程序的生成、連接和運行。但是對這類錯誤不應掉以輕心,應仔細檢查程序,這往往存在著某種潛在的運行期錯誤。
⑵ C語言作業運行不出來,求指導
沒有運行結果的原因是代碼中存在死循環。
進入 while 循環體前,變數 t 的值為 1。循環過程中 t 的值沒有改變,而循環條件是 t >= 0.0001,這個條件一直滿足,所以程序不會跳出循環。程序一直卡在循環裡面,自然不會執行到下面的 printf 函數。
卡循環是沒有運行結果的原因。實際上代碼還存在其他問題,無法計算出正確的結果:
[1] 變數 s 的類型應該是 double:格雷戈里公式中的每一項都是小數,使用整型數類型保存結果會將小數部分截斷;
[2] 第 10 和 11 行的 if 語句塊是不必要的:前面的代碼保證變數 t 的值為 1,因此無需負數到正數的轉換;
[3] 變數 t 沒有迭代:代碼中變數 t 的作用是每次循環自增,用以提供分母的值,而實際上在循環中沒有更新 t 的值;
[4] 變數 t 和變數 s 混淆了:代碼用變數 s 來表示格雷戈里公式中的每一項的值,而循環條件的判斷卻用了變數 t,這也是死循環的原因。同時原題中要求用 t 表示格雷戈里公式中的每一項,代碼中使用了變數 s 來表示;
程序運行結果
⑶ C語言編譯好後為什麼運行不出結果呢
這段代碼有問題:while(1){printf ("Hello/n");}循環語句沒有終止條件,循環會一直進行下去,得不到結果。
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
⑷ C語言為什麼沒錯誤還執行不了
c語言的錯誤分為兩種,一種是運行時錯誤,一種是邏輯上的錯誤。邏輯上的錯誤不好判斷,執行不了肯定是出現邏輯上的錯誤的。
⑸ C語言程序運行不了,哪位大神幫忙解個惑呀
你的二分法查找的C語言程序有兩處問題,我幫你改好了(改動的地方見注釋)
#include <stdio.h>
#include <math.h>
void main(){//這里把mian改成main
int a[10]={0,1,6,16,23,56,80,100,110,115};
int low,high,mid,found,n;
low=0;
high=9;
found=0;
printf("write a number: ");
do{
scanf("%d",&n);
getchar();
}while(n<a[0]||a[9]<n);//這里把n小於a[9]改成a[9]小於n
while(low <= high){
mid=(low+high)/2;
if(n==a[mid]){
found=1;
break;
}else if(a[mid]>n)
high=mid-1;
else
low=mid+1;
}
if(found==1){
printf("this number bit is %d ",mid);
}else{
printf("NO no %d ",n);
}
}
⑹ c語言運行錯誤
打開vc6,新建空白的console工程後,應新建.c或.cpp文件寫可執行代碼。你在.h文件里寫代碼,是不是弄錯了呢。寫好後要先編譯再運行。如果所有步驟都是正確的,還無法執行,那有可能是設置問題。
正常的設置如下(注意路徑可能不同):
⑺ 我的c語言程序為什麼會執行不了
程序語法上沒有問題。如果你的編譯器不支持漢字編碼,則用 英文 ASCII 字元為好。
另外,注意輸入數據 的 格式,格式不對會執行不了。
假定用英文:
#include <stdio.h>
int main(void)
{
char cType=0,dType=0;
float amount=0,rate=0;
printf("input c f c\n");
scanf("%c %f %c",&cType,&amount,&dType);
switch(dType)
{ case '1': rate = 1.5; break;
case '2': rate = 2; break;
case '3': rate = 3; break;
case '4': rate = 3.2; break;
case '5': rate = 3.5; break;
default: printf("no such dType\n"); return -1;
}
if(cType=='V') rate = rate *1.1;
if(amount>=100000) rate = rate *1.2;
printf("rate:%.2f%%\n",rate);
return 0;
}
輸入: V 12345 3
輸出: rate:3.30%
輸入: 3 12345 3
輸出: rate:3.00%
⑻ 為什麼c語言無法運行。
代碼沒問題,可能是有的編譯器或IDE不支持編譯單個源文件。這樣的話,你需先建立一個控制台項目,然後將源文件添加到項目後,再編譯這個項目才行。
⑼ C語言問題,為什麼運行不起啊!!!嗚嗚嗚
應該將你代碼的scanf函數中,第一個參數的3個%lf之間的逗號去掉,並且sqrt函數裡面,後面三項乘法應該用乘法運算符*連接起來,之後再重新編譯一下就可以了。
⑽ c語言的編程為什麼不能運行
首先你要明白是語言的一個整體的框架,如果你整體的框架是沒有構建好的話,那麼他是不能夠運行的,如果他裡面存在了一些錯誤,他就會導致無法運行,或者是讓你重新修改。