求大神看一下这个C语言程序怎么改我实在不想改了
#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){inti,j,h,k,t=0,m=0,w,q,n...
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{int i,j,h,k,t=0,m=0,w,q,n,*p=(int*)malloc(n*sizeof(int));
printf("参赛人数:");
scanf("%d",&n);
printf("淘汰人数:");
scanf("%d",&q);
srand( (unsigned) time( NULL) );
w=rand()%n+1;
for(i=1;i<=n;i++,p++)
*p=i;p=p-n;
while(m<q)
{for(i=1;i<=n;i++)
if(*(p++)==w)
{m++;*p=n+2;
for(k=1,h=i;h<=n;k++,h++)
*(p++)=k;
for(t;t<i;t++)
*(p-n+t)=k+t;
}
p=p-n;w=rand()%+1;}
printf("赢的有:");
for(i=0;i<n;i++)
if(*(p+i)<=n)
printf("%d ",i+1);
printf("输的有:");
for(i=0;i<n;i++)
if(*(p+i)>n)
printf("%d ",i+1);}
结果输的总是和输入的淘汰数不一样 展开
#include<stdlib.h>
#include<time.h>
int main()
{int i,j,h,k,t=0,m=0,w,q,n,*p=(int*)malloc(n*sizeof(int));
printf("参赛人数:");
scanf("%d",&n);
printf("淘汰人数:");
scanf("%d",&q);
srand( (unsigned) time( NULL) );
w=rand()%n+1;
for(i=1;i<=n;i++,p++)
*p=i;p=p-n;
while(m<q)
{for(i=1;i<=n;i++)
if(*(p++)==w)
{m++;*p=n+2;
for(k=1,h=i;h<=n;k++,h++)
*(p++)=k;
for(t;t<i;t++)
*(p-n+t)=k+t;
}
p=p-n;w=rand()%+1;}
printf("赢的有:");
for(i=0;i<n;i++)
if(*(p+i)<=n)
printf("%d ",i+1);
printf("输的有:");
for(i=0;i<n;i++)
if(*(p+i)>n)
printf("%d ",i+1);}
结果输的总是和输入的淘汰数不一样 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询