C语言编程,报数问题!

C语言编程,报数问题!,第1张

#include <stdio.h>

int main()

{

int N,M,*a

int i,j,position=1,total=0,chage/*total出队的人数*/

printf("Enter the N and M\n")

scanf("%d%d",&N,&M)

a=(int *)malloc(N*sizeof(int))

for (i=0i<Ni++)

a[i]=i+1

while(1)

{

position+=M-1

while (position>N-total)

position=position-N+total

chage=a[position-1]

for (j=positionj<N-totalj++)

a[j-1]=a[j]

a[N-total-1]=chage

total++

if (total==N)/*出队人数等于N,程序结束*/

{

for (i=0i<N-1i++)

printf("%d->",a[N-i-1])

printf("%d\n",a[0])

return 0

}

}

}

#include<stdio.h>

int main(void)

{

int a[9999],n,i,count,num,*p

p=&a[0]

count=1

n=i=num=0

printf("Input n(n must be a natural number less than 10000):")

scanf("%d",&n)

if(n<=10000)

{

for(i=0i<ni++)

a[i]=i+1

while(num<n-1)

{

count++

p++ //这里就有越界的可能(p>&a[n-1]),如果这里越界了,那下

面的循环就不会执行了,那么p就一直++,直到num==n-1

if(p>&a[n-1]) //所以这里就要判断一下,或者开始时就把a的所有

元素全部初始化为0,就不用这个判断了

p=&a[0]

while(*p==0)

{

p++

if(p>&a[n-1])

p=&a[0]

}

if(count%3==0)

{

*p=0

num++

}

}

while(*p==0)

{

p++

if(p>&a[n-1])

p=&a[0]

}

printf("Last No. is:%d",*p)

}

else

printf("%d is out of range of valid values.",n)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11352182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存