c语言程序算法分析 急!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 19:50:17
#include <stdio.h>

main()
{
int num[3]={0,0,0};
int i=0,temp=0;
int flag=0;
printf("shu ru hou xuan ren de mingzi 1,2,huo3:\n");
do
{
do
{
scanf("%d",&temp);
if(0<temp&&temp<4)
{
switch(temp)
{
case 1:num[0]++;break;
case 2:num[1]++;break;
case 3:num[2]++;break;
}
i++;
}

else
{
printf("wu xiao tou piao,qing chong xin shu ru:\n");
getchar();
for(i=0;i<3;i++)
num[i]=0;
i=0;
}
}
while(i<12);

if(num[0]>6||num[1]>6||num[2]>6)
{
flag=1;
}
else
{
for(i=0;i<3;i++)
num[i]=0;
i=0;
printf("wu xiao tou piao,qjing chong xin shu ru:\n");
}

}
while(flag!=1);

这是一个简单的选票计票程序

===================================
do
{
scanf("%d",&temp);
if(0<temp&&temp<4)
{
switch(temp)
{
case 1:num[0]++;break;
case 2:num[1]++;break;
case 3:num[2]++;break;
}
i++;
}

else
{
printf("wu xiao tou piao,qing chong xin shu ru:\n");
getchar();
for(i=0;i<3;i++)
num[i]=0;
i=0;
}
}
while(i<12);
===================================
上面这个do/whille循环是用来统计每个候选人的得票数的(分别用num数组的0,1,2存放),
当有任何无效输入时(1~3以外的值,进入else分支),就进行全部得票数的清零,并重新投票。
直到12张选票都统计完,并且都有效,该do/whille循环结束。

====================================
if(num[0]>6||num[1]>6||num[2]>6)
{
flag=1;
}
else
{
for(i=0;i<3;i++)
num[i]=0;
i=0;
printf("wu xiao tou piao,qjing chong xin shu ru:\n");
}
==========================