① 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(),如下圖所示。