❶ 程序能编译,不能运行,是怎么回事
楼主:
你好!
首先,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以上的系统会提示运行检查,直接忽略即可