现有三个红球,五个白球,六个黑球,从中任取八个球,且其中必须有白球,有多少种方案?(C语言源程序)用switch语句我是这样编的#includevoid main(){int a,b,c,x,y;/*a代表红球,b代表白球,c代表黑球*/y=a+b+c;y
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 16:23:37
现有三个红球,五个白球,六个黑球,从中任取八个球,且其中必须有白球,有多少种方案?(C语言源程序)用switch语句我是这样编的#includevoid main(){int a,b,c,x,y;/*a代表红球,b代表白球,c代表黑球*/y=a+b+c;y
现有三个红球,五个白球,六个黑球,从中任取八个球,且其中必须有白球,有多少种方案?(C语言源程序)
用switch语句我是这样编的
#include
void main()
{
int a,b,c,x,y;/*a代表红球,b代表白球,c代表黑球*/
y=a+b+c;
y=14;
x=a+c;
while(a>=0&&b>=0&&c>=0)
{switch(b)
{
case 1:if(x=7)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 2:if(x=6)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 3:if(x=5)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 4:if(x=4)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 5:if(x=3)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 6:if(x=2)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 7:if(x=1)
printf("%d\n,%d\n,%d\n",a,b,c);break;
case 8:if(x=0)
printf("%d\n,%d\n,%d\n",a,b,c);break;
}
}
}
怎么没有输出啊?
现有三个红球,五个白球,六个黑球,从中任取八个球,且其中必须有白球,有多少种方案?(C语言源程序)用switch语句我是这样编的#includevoid main(){int a,b,c,x,y;/*a代表红球,b代表白球,c代表黑球*/y=a+b+c;y
你的y=a+b+c就是无用的,这不是限制语句,而是赋值语句,你是想让a加b加c必须等于y,但你写的这句话是让y等于abc的和,而你下一句话让y=14就直接让上一句话没用了,还有下一句x=a+c,此时a和c还没有值,不能给x具体数值,c语言不是你想的那样,如果上文有一句x=a+c下文变换a和c的值x也跟着变化,而是赋值就是一次性的,并不会因之前的语句而与其他变量一起更改数值,所以,你只能改算法了,还需要算法具体讲解吗?其实就是三个for循环嵌套,还有给你个建议减少使用switch.