❶ 程序能編譯,不能運行,是怎麼回事
樓主:
你好!
首先,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;
}
❷ vc 6.0編譯出的程序在win10下不兼容
可能是系統你系統沒有及時進行更新吧?
WIN10系統目前是逐步完善的,很多此前兼容有問題的軟體,目前運行都還是可以的。
你要不下個騰訊電腦管家,首先檢查一下系統漏洞。
打開騰訊電腦管家。。。。工具箱。。。。修復漏洞
如果不是這方面問題,還可以看看系統上是否存在其他問題,這些你通過體檢是可以做到檢查及修復的。
打開騰訊電腦管家。。。。全面體檢
❸ 為什麼我用VC++編譯器編譯別人的代碼會提示不兼容
其實是可以正常運行的,你把那個「不再顯示此消息」勾選了,然後右鍵點擊VC選擇屬性
選擇以兼容模式運行,應用,確定之後就行了。
❹ java的兼容問題,以下程序為什麼編譯時提示不兼容
import java.awt.Graphics;
import java.applet.Applet;
class MyException extends Exception {
public MyException() {
}
public MyException(String msg) {
super(msg);
}
}
class Fushu1 {
double Rez = 0;
double Imz = 0;
double D = 0;
public Fushu1(double a, double b) {
Rez = a;
Imz = b;
D = Math.sqrt(Rez * Rez + Imz * Imz);
}
public void disp(int x, int y, Graphics g) {
String s1 = new Float(Rez).toString();
String s2 = new Float(Imz).toString();
String s3 = new Float(D).toString();
g.drawString(" " + s1 + "+(" + "" + s2 + ")i" + " " + s3+ " ", x, y);
}
}
class Fushu1Add {
Fushu1 A = null;
Fushu1 B = null;
Fushu1 C = null;
Fushu1Add(Fushu1 mtx_z, Fushu1 mtx_v) {
A = mtx_z;
B = mtx_v;
C = new Fushu1(0, 0);
}
public Fushu1 Add() {
C.Rez = A.Rez + B.Rez;
C.Imz = A.Imz + B.Imz;
C.D = Math.sqrt(C.Rez * C.Rez + C.Imz * C.Imz);
return C;
}
}
class Fushu1Multiply extends Fushu1Add {
Fushu1Multiply(Fushu1 mtx_z, Fushu1 mtx_v) {
super(mtx_z, mtx_v);
}
public Fushu1 Multiply() {
C.Rez = A.Rez * B.Rez - A.Imz * B.Imz;
C.Imz = A.Rez * B.Imz + B.Rez * A.Imz;
C.D = Math.sqrt(C.Rez * C.Rez + C.Imz * C.Imz);
return C;
}
}
class Fushu1Division extends Fushu1Add {
Fushu1Division(Fushu1 mtx_z, Fushu1 mtx_v) {
super(mtx_z, mtx_v);
}
public Fushu1 Division() {
C.Rez = (A.Rez * B.Rez + A.Imz * B.Imz)
/ (B.Rez * B.Rez + B.Imz * B.Imz);
C.Imz = (A.Imz * B.Rez - A.Imz * B.Rez)
/ (B.Rez * B.Rez + B.Imz * B.Imz);
C.D = Math.sqrt(C.Rez * C.Rez + C.Imz * C.Imz);
return C;
}
public void disp(int x, int y, Graphics g) {
String s1 = new Float(C.Rez).toString();
String s2 = new Float(C.Imz).toString();
String s3 = new Float(C.D).toString();
g.drawString(" " + s1 + "+(" + "" + s2 + ")i" + " " + s3
+ " ", x, y);
}
}
public class TestMyException3 extends Applet {
Fushu1 mtx_z, mtx_v, mtx_e, mtx_a, mtx_b;
Fushu1Add mum;
Fushu1Multiply mtxmul;
Fushu1Division cf;
public void init() {
mtx_z = new Fushu1(4.0, 3.0);
mtx_v = new Fushu1(0.0, 0.0);
mum = new Fushu1Add(mtx_z, mtx_v);
cf = new Fushu1Division(mtx_z, mtx_v);
mtxmul = new Fushu1Multiply(mtx_z, mtx_v);
mtx_a = mum.Add();
mtx_e = mtxmul.Multiply();
mtx_b = cf.Division();
}
public void paint(Graphics g) {
mtx_z.disp(5, 10, g);
mtx_v.disp(5, 70, g);
mtx_e.disp(5, 130, g);
mtx_a.disp(5, 180, g);
try {
mtx_b.disp(5, 230, g);
} catch (ArithmeticException e) {
g.drawString("chengxuyouwenti", 5, 300);
} catch (Exception e) {
g.drawString(e.getMessage(), 5, 250);
}
}
}
❺ vc++ 6.0在win8.1能正常打開編輯,編譯程序但不能執行!顯示不兼容
在win8上裝一個winxp的虛擬機,將程序安裝到虛擬機上去運行,可以解決!
或下載一個vs2013之類的工具,替換vc6
或下載其他的IDE,如devC++等
❻ VC++6.0在編譯程序時顯示此程序存在兼容性問題,怎麼解決
右鍵應用程序,屬性,設置兼容模式,以管理員方式運行。
❼ codeblocks可以編譯,但編譯後的程序提示是16位,與64位的Windows不兼容,無法運行
setting -> enrionment->->terminal to lanch console program:里改成gnome-terminal -t $TITLE -x運行下試試,這樣不用codeblocks的xterm 而是調用系統自身的終端
❽ 為什麼我的程序不能編譯
在我的電腦上能編譯的是不是你的編譯軟體有問題啊?
建議你換個編譯軟體看看
f(key=123) 改為f(key==123)
❾ 編譯程序後,提示是:不兼容類型 為什麼啊哪裡出錯啦!我是初學者中的初學者~
public class xy
{
public static void main(String args[])
{
point p1=new point();
p1.show();
point p2=new point(3.5,4.5);
p2.show();
}
}
class point
{
double x,y;
public point ()
{
}
public point (double x,double y)
{
x=0;
y=0;//這里是0
}
public double a()
{
return x+y;
}
public void show()//這里是void 不然要返回值才行
{
System.out.println("兩數之和"+a());
}//下面的兩個花括弧改成英文輸入法
}
❿ 用什麼程序編譯c語言 很多都不兼容
新人學的話,建議用vc++6.0,這個是最常用的,win7以上的系統會提示運行檢查,直接忽略即可