正在写c语言程序,是一个求三个数最小公倍数的程序,然后就发现已经写好的程序因为多定义一个int p=1;就不正常运行了
#include<stdio.h>
void main(){
int a,b,c,x,y;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c){
x==a;
}else if(b>a&&b>c){
x==b;
}else{
x==c;
}
int i=1;
while(1){
y=x*i;
if((y%x==0&&y%b==0&&y%c==0)){
break;
}
i++;
}
printf("%d\n",y);
}
#include<stdio.h>
void main(){
int a,b,c,x,y;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c){
x==a;
}else if(b>a&&b>c){
x==b;
}else{
x==c;
}
int i=1;
int p=1;
while(1){
y=x*i;
if((y%x==0&&y%b==0&&y%c==0)){
break;
}
i++;
}
printf("%d\n",y);
}
上面是正常的代码段,下面这个就是多定义一个p,刚学c语言,我觉得多定义一个跟程序运行没有关系,但是就没办法正常输出最小公倍数了,有没有明白人解释一下为什么这样
在if语句中,你将赋值写成判断了,x=a写成x==a了,b和c也一样,先改正这里看看
这两个程序是一样的,并不会因为你加了int p=1;而不一样,程序求最小公倍数本身逻辑就有问题吧。
首先你前面代码片段中的if-else语句中的给x赋值是=吧,不是==,这个定义p和没定义p应该没啥区别