⑴ 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語言編程的時候出現「程序已停止工作」的原因有哪些
最常見的原因:程序發生了空指針調用。x0dx0a如果你剛入門,請檢查:x0dx0ascanf("%d",&i); 有沒有加上「&」號,scanf必須在變數前加「&」(取地址符)。x0dx0a如果沒有加&, scanf會把變數當作地址來用,而你的程序中又沒有以變數為地址的變數,操作系統不允許程序讀寫程序規定范圍以外的空間。出於安全起見,操作系統將其緊急中止。就發生了「***.exe已停止工作」的效果。x0dx0a如果你正在學習數組,請檢查:x0dx0a數組是否越界。定義為int a[10]的數組,如果寫a[10]=0; 相當於對a數組里的第11個元素賦值。事實上,a數組里並沒有第11個元素。如果該元素的位置指向一個程序以外的內存,操作系統同樣會果斷將其終止。x0dx0a如果你正在學習指針,請檢查:x0dx0a指針是否賦值;x0dx0a在給指針賦值時,有沒有在非指針變數前加取地址符「&」;x0dx0aint * p = &i; //正確!x0dx0aint * p = i; //錯誤!x0dx0a這與在sccanf里沒有加上「&」號的原因大致相同。x0dx0a指針問題屬於程序邏輯錯誤,很多時侯編譯器只會給你一個警告。要注意警告發生的位置自己是否有把握。如果你多次編譯或忽視編譯警告而進行鏈接,編譯器會認為你對這些警告是有把握的,完全地信任了你,也就沒有警告了。
⑶ 我的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語言寫的程序不能運行
C語言程序不能直接運行
必須經過編譯 鏈接 兩個步驟
並且沒有錯誤情況下才可以運行的
編譯 和鏈接過程中都可能出錯
而且錯誤多種多樣
需要根據錯誤提示 修改源程序或者設置 才可以通過。
⑸ 為什麼c語言無法運行程序
首先,檢查一下程序里有沒有中文字元。
其次,用#include"stdio.h"這種方式調用需要.h文件在當前路徑下。我個人認為改成#include<stdio.h>比較好。
再其次,沒有getch這個函數,只有getchar,建議你拿不準的時候網路。
語法的問題基本就是這些,說說語義,你的a沒復制直接printf沒有意義。
忘說了,還要在最後加上return 0;,雖然不加可能也沒什麼關系,編譯器可能會自己給你加,但是還是加上好。
⑹ c語言程序無法運行
編譯選項里找找,必須編譯成release版本才能在其他機器運行。只有release版本對應的dll才是隨windows一起發布的,調試版不會隨windows發布
⑺ C語言為什麼沒錯誤還執行不了
c語言的錯誤分為兩種,一種是運行時錯誤,一種是邏輯上的錯誤。邏輯上的錯誤不好判斷,執行不了肯定是出現邏輯上的錯誤的。
⑻ 編寫c語言代碼是無法執行程序是怎麼回事
C語言代碼本身是不能被執行的,必須要進行編譯後才能產生可執行文件。
C語言編譯的過程中會自動產生兩個文件,其文件後綴分別是.o和.exe。
.o是編譯文件,用於減小更改程序後再編譯時的時間。
.exe 是可執行文件,在Windows系統下,只有.exe才是可以執行的程序。
如果在編譯後沒有產生對應的.exe文件就代表程序代碼出現問題,未通過編譯。
⑼ 為什麼C語言程序編譯正確但不能執行
因為你的c沒有初值,while循環無法進行。另外你的演算法也有問題,while循環可改為while(m%n!=0),循環結束後最小公約數時n。