① C语言出错泊松分酒
错的有些离谱了。。。我不知道是不是编译器问题。。。
#include<stdio.h>
inti,n;
intprobo(inta,intbv,intcv){
intn=0,b=0,c=0;
while(!(a==i||b==i||c==i)){
if(!b)
if(a<bv){n=-1;break;}
else{a-=bv,b=bv;}
elseif(c==cv){a+=cv;c=0;}
elseif(b+cv==i){a-=cv-c;c=cv;}
elseif(b>cv-c){b-=(cv-c);c=cv;}
else{c+=b;b=0;}
n++;
}
return(n);
}
voidpractice(inta,intbv,intcv){
intb=0,c=0,x=0;
printf("平分酒的分法: ");
printf("酒瓶%d空杯%d空杯%d ",a,bv,cv);
printf("%6d%6d%6d ",a,b,c);
while(!(a==i||b==i||c==i)){
if(!b){a-=bv;b=bv;}
elseif(c==cv){a+=cv;c=0;}
elseif(b+cv==i){a-=cv-c;c=cv;}
elseif(b>cv-c){b-=(cv-c);c=cv;}
else{c+=b;b=0;}
x++;
printf("%3d:%6d%6d%6d ",x,a,b,c);
}
printf("平分酒共分倒%d次. ",n);
}
intmain()
{
inta,bv,cv,m1,m2;
printf(" 请输入酒总量(偶数):");scanf("%d",&a);
printf("两空杯容量bv,cv分别为:");
scanf("%d,%d",&bv,&cv);
i=a/2;
if(bv+cv<i)
{printf("空标容量太小,无法平分! ");return0;}
m1=probo(a,bv,cv);m2=probo(a,cv,bv);
if(m1<0&&m2<0)
printf("无法平分!");
if(m1>0&&(m2<0||m1<m2))
{n=m1;practice(a,bv,cv);}
if(m2>0&&(m1<0||m2<m1))
{n=m2;practice(a,cv,bv);}
}
你发的代码太乱了,一点条理性也没有。首先,主函数必须定义为int型,在部分编译器中不定义或void型也不会报错,但int型不管怎么编译都不会错。
其次,调用的函数必须在调用之前申明。
还有就是小写字母不要打成大写字母。
最后,注意缩进,不然看起来太乱。
② 用c语言编程如何实现求和的程序代码
1、首先把头文件,main函数写好#include<stdio.h> main(),如下图所示。