① 為什麼能編譯 不能運行呢
你用eclipse編譯的話main方法一定要放在public類中,但是如果你直接在DOS命中用javac與java編譯,main方法可以不寫在public類中,不過一般情況還是都寫在public類中好些。
很明顯你main方法沒有寫在public類中,因為在程序運行的時候,系統會從public類中尋找mian方法,要不然運行不了
② java 能編譯但是不能運行
解決方法也很簡單,有兩個辦法:
1.運行的時候,加上-cp參數,值是一個」.」,表示當前目錄。比如:
java -cp . HelloWorld
2.在環境變數里寫CLASSPATH = .\;%JAVA_HOME%\lib\tools.jar,同樣,注意前面那個」.」。運行時就可以:
java HelloWorld
比起來,後面這個方法徹底點。
③ 能通過編譯,但卻不能成功運行
通不過MS VC++ 編譯器。
(1)stacknode *newptr=(struct stacknode *)malloc(sizeof(stacknode));
應當是:
stacknode *newptr=(stacknode *)malloc(sizeof(stacknode));
(2)linkstack *s; s->top=NULL;
s沒有初始化,就使用了。
(3)char elem;
scanf("%d",&elem); char 型不能用%d 格式
要麼改成 unsigned char elem
要麼改成 %s
④ 程序能編譯,不能運行,是怎麼回事
樓主:
你好!
首先,main拼寫錯誤;
其次,根據你的思想,交換數據直接通過交換地址也是不可取的,因為盡管實現了地址的交換,但是變數a,b的值並沒有發生變化。
再次,切記也通過定義*p來實現交換內容,因為指針p所指向的單元式不可預見的,給*p賦值可能對存儲著一個重要的數據覆蓋了,破壞了計算機的正常運行。
所以,正確的做法是:定義一個中間變數p即可:
正確的程序如下圖所示:
#include<stdio.h>
int main()
{
int a,b,p;
int *p1,*p2;
printf("please enter two number:");
scanf("%d,%d",&a,&b);
p1=&a;
p2=&b;
if(a<b)
{
p=*p1;
*p1=*p2;
*p2=p;
}
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
return 0;
}
⑤ 可以過編譯,但無法正常運行
代碼太多,無法確定原因
但是初看上面貼的錯誤很可能不是由具體代碼導致,而是你項目結構或者運行方式有錯
⑥ 為什麼java程序能編譯卻不能運行
哦,你沒寫程序的入口方法
public
static
void
main(string[]
args){}
在main函數的方法體中構造個對象調用你所寫的方法即可
⑦ c++程序通過編譯,但無法運行。
我滴個神,第一次看見變數用中文的,雖然現在編譯器可以這么搞,但是勸你寫任何一行代碼都不要用中文作為變數名,或者方法名。
代碼改了一下:PS:第一次見這么寫代碼的,特地用VS2012編譯運行了一下,沒啥大問題。老的編譯器可能就不一定支持變數命名為中文了。
intmain()
{
double攝氏度;
cout<<"請輸入攝氏度:";
cin>>攝氏度;
cin.get();
double華氏=0.0;
華氏=華氏度(攝氏度);//這里傳錯了吧,按照你的意思。
cout<<攝氏度<<"攝氏度="<<華氏<<"華氏度";
cin.get();
}
double華氏度(double攝氏)
{
//double華氏=攝氏*18+32;
double華氏=9*攝氏/5+32;
return華氏;
}
⑧ 程序編譯過了,但是無法運行出結果是怎麼回事
編譯過了沒錯誤,說明你的代碼語法沒錯誤。運行結果不對,是你的代碼邏輯有問題,仔細檢查代碼邏輯流程是不是不對,調試調試。
⑨ C語言程序問題,編譯成功可卻不能運行,這是為什麼
如果你的循環中的i值變化范圍沒有問題,則修改你的數組定義為:double err[502],B,W[502],W2[502],j,beta[501];你的原始定義都少了一個數組元素,會導致下標越界,進而引發運行時錯誤。
⑩ 可以編譯,但是不能運行要怎麼解決
看下C語言變數和函數命名規范