C语言初级问题----望高手指教

来源:百度知道 编辑:UC知道 时间:2024/05/17 16:00:56
#include"stdio.h"
void main()
{
int red,white,black;
for(red=0;red<=3;red++)
for(white=0;white<=3;white++)
for(black=0;black<=6;black++)
if(red+white+black==8)
printf("\nred %d,white %d,black %d",red,white,black);
} 这个程序首先是r=0,w=0,b=0,然后执行if时不成立 那在返回到哪里去呢 请高手帮我把这个程序的流程讲解下 谢谢咯

三层循环
应该是跳到第3层 for(black=0;....)这句,直到black=7再跳到中间这句for(white=0;.....)最后跳到第1层.
个人感觉缺少一些括号,所以影响了一点判读程序.

先是 r=0 w=0 b=0 然后进第3层 就成了 r=0 w=0 b=1....(b一直增加)一直到r=0 w=0 b=7再跳到第2层 r=0 w=1 b=7....(w一直增加)一直到r=0 w=4 b=7再跳到第1层 r=1 w=4 b=7...(r一直增加)一直到r=4 w=4 b=7退出了程序.

输出应该是 0+1+7

还是觉得程序书写不规范哈~~
不知道我回答的对不对

你把这段去掉
if(red+white+black==8)

流程不都显示出来了吗

#include"stdio.h"
void main()
{
int red,white,black;

//以下是3个for循环
for(red=0;red<=3;red++)
for(white=0;white<=3;white++)
for(black=0;black<=6;black++)
//这个if判断语句是循环体内循环执行的语句啊
if(red+white+black==8)
//如果满足了if的条件,就把red,white和black的值打印到屏幕上啊
printf("\nred %d,white %d,black %d",red,white,black);
}

#include"stdio.h"
void main()
{
int red,white,black;
for(red=0;red<=3;red++)
for(white=0;white<=3;white++)
for(blac