⑴ 為什麼這個C語言程序不能運行
第1,*p=
&max;,應該改為p
=
&max
p是int型指針,這樣才類型匹配。
第2,fscanf(stdin,
"%d",
a[i]
這一行,
a[i]應該成&a[i],
fscanf傳入的是地址,漏&是初學者常見錯誤。
好像就這兩個錯,希望能對。
補充一下,while(fscanf(...)
==
1)這里是個死循環,就是說你的程序不會停的啊,你可以改成讀到負數就停之類的。
要是輸入一行就停的話,需要先把這一行讀入,再分析數字才能做到。
⑵ C語言編譯好後為什麼運行不出結果呢
這段代碼有問題:while(1){printf ("Hello/n");}循環語句沒有終止條件,循環會一直進行下去,得不到結果。
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
⑶ 一個c語言問題,編譯通過但不能運行
改好了
在下面已經注釋
#include
<math.h>
#include
<stdio.h>
#include
<conio.h>
#include
<stdlib.h>
#include
<time.h>
int
go(){
int
t,mo;
t=(int)(4*rand());
mo=t%4;
return
mo;
}
int
test(int
up,int
down,int
left,int
right,int
t1){
switch
(t1){
case
0:
if(up==1){
return
1;
}
case
1:
if(down==1){
return
1;
}
case
2:
if(left==1){
return
1;
}
case
3:
if(right==1){
return
1;
}
}
return
0;
}
void
main()
{
char
mat[12][12];
int
i,t,tgo,x,y,m,n,sum;
int
up=1,down=1,left=1,right=1;
char
s;
srand((unsigned)
time(NULL));
for(m=1;m<11;m++){
for(n=1;n<11;n++){
mat[m][n]=46;
}
}
mat[1][1]=65;
x=0,y=0;
for
(i=1;i<26;i++){
up=1;
down=1;
left=1;
right=1;
//測試四周是否已走過或是邊界,是則對應值取0
if(mat[x-1][y]!=46){
left=0;
}
if(mat[x+1][y]!=46){
right=0;
}
if(mat[x][y-1]!=46){
up=0;
}
if(mat[x][y+1]!=46){
down=0;
}
//如果4個方向都不可以通過,結束循環
sum=up+down+left+right;
if(sum==0){
break;
}
//如果生成的方向不可以行走,就再次循環生成新的方向知道可以通過
do{
t=go();
tgo=test(up,down,left,right,t);
}while(tgo!=1);
switch(t){
case
0:
mat[x][y-1]=65+i;
y=y-1;
break;
case
1:
mat[x][y+1]=65+i;
y=y+1;
break;
case
2:
mat[x-1][y]=65+i;
x=x-1;
break;
case
3:
mat[x+1][y]=65+i;
x=x+1;
break;
}
}
for(m=1;m<11;m++){
for(n=1;n<10;n++){
printf("%c",mat[m][n]);///////這里是%c不是%s
}
printf("%c\n",mat[m][10]);////////這里是%c不是%s
}
s=getchar();
}
⑷ c語言編譯正確 不能執行
main函數重定義了,檢查一下你的工程文件,是不是包含了系統自動生成的.c文件,裡面是不是已經有main函數了。
⑸ 為什麼這個C語言程序成功編譯卻無法運行
你定義了Y,但沒有用,然後%d,要是整型的,你後面是double型的,改一下就好了
⑹ C程序編譯後無法運行什麼原因呢
如果你是包含iostream頭文件並使用了using
namespace
std;的話,那麼你可以在main函數的結尾處,也就是return語句之前加上一句system("pause");那樣就OK了。具體原因不是很清楚,好像是環境的原因
⑺ 我C程序編譯正確,但是不能執行
這明顯是編譯錯誤。
提示找不到頭文件。
說明編譯器配置不對。
重新配一下頭文件路徑。
⑻ 為什麼在c語言編好的程序無法運行
信息不是很全。我就關於「C語言」和「運行程序」之間的關系,大概說一說。你可以針對我說的結合你自己的情況比較一下。如果能補充必要的信息更好。
編碼者編輯的東西,叫「C源程序"。
「C源程序」必須經過「編譯、連接」,生成可執行程序,windows下通常是「.exe"後綴的文件,在linux/unix下,可能就是一個不帶後綴的可執行程序文件。
比如:hello.c,在windows下可能生成hello.exe。在linux/unix下,可能生成hello
「編譯」和「連接」過程,不能有錯誤。否則得修改源程序或其它配置,然後重新做一遍。
如果是在一個「集成環境」,或者所謂IDE下,.exe等可執行文件必須是該IDE中可見的,即對應的PATH環境變數包含.exe可執行文件所在的路徑。
如果是(4)的情況,請檢查一下你的IDE的設置。如果是其它情況,請看看編譯和連接過程是否成功。
希望我說明了。有問題繼續交流,謝謝。
⑼ 編寫c語言代碼是無法執行程序是怎麼回事
C語言代碼本身是不能被執行的,必須要進行編譯後才能產生可執行文件。
C語言編譯的過程中會自動產生兩個文件,其文件後綴分別是.o和.exe。
.o是編譯文件,用於減小更改程序後再編譯時的時間。
.exe 是可執行文件,在Windows系統下,只有.exe才是可以執行的程序。
如果在編譯後沒有產生對應的.exe文件就代表程序代碼出現問題,未通過編譯。
⑽ 編譯的C語言程序沒有錯誤就是運行不了怎麼回事
這個太多情況了,程序能編譯只能證明程序沒語法錯,程序有問題(如下標溢出,表達式不正確)可能導致程序無法運行或結果不正確的