#include <stdlib.h>
void main()
{int iint jint kint pint zint y
i=0j=0k=0p=0
start:
printf("******请投票*****\n")
printf("*投1选择后先人张*\n")
printf("*投2选择后先人王*\n")
printf("*投3选择后先人李*\n")
printf("*投4选择后先人赵*\n")
printf("*投5结束投票*****\n")
printf("*****************\n")
scanf("%d",&z)
switch(z)
{case(1):printf("投票成功\n")system("cls")i++goto startbreak
case(2):printf("投票成功\n")system("cls")j++goto startbreak
case(3):printf("投票成功\n")system("cls")k++goto startbreak
case(4):printf("投票成功\n")system("cls")p++goto startbreak
case(5):
{system("cls")
printf("是否要退出投票\n")
printf("1:确定\n")
printf("2:按错了")
scanf("%d",&y)
if(y==1)
{system("cls")
break}
else
{system("cls")
goto start}
}
default:printf("投票有误请重新输入")system("cls")goto startbreak
}
printf("张的票数为%d\n",i)
printf("王的票数为%d\n",j)
printf("李的票数为%d\n",k)
printf("赵的票数为%d",p)
}
#include <stdio.h>int number
void calcLimit(int n, int sep, int *min, int *max)
{
if (min == NULL || max == NULL) return
*min = 1
*max = n - sep + 1
}
void calcEle(int n, int sep, int step, int count)
{
int s, c
int min, max
int i
s = step + 1
calcLimit(n, sep, &min, &max)
for (i = min i <= max i++)
{
c = count + i
if (c > n) return
if (s == sep)
{
if (c == n)
{
number++
return
}
}
else if (s < sep)
{
if (c < n) calcEle(n, sep, s, c)
}
else return
}
}
int main(int argc, char *argv[])
{
int n, sep
scanf("%d", &n)
number = 0
if (n <= 1) return 0
for (sep = 2 sep <= n sep++)
{
calcEle(n, sep, 0, 0)
}
printf("num: %d\n", number)
return 0
}
对上限没有限制。测试过4.5.6
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)