本帖最后由 jackz007 于 2024-10-26 01:35 编辑
这些代码 for(index=0;index<n;index++)
{
if(arr[index]==1)
{
number++;
}
if(number%3==0)
{
arr[index]=0;
count--;
}
}
应该改为: for(index=0;index<n;index++)
{
if(arr[index]==1)
{
number++;
if(number%3==0)
{
arr[index]=0;
count--;
}
}
}
以下是我写的代码,谨供楼主参考:#include <stdio.h>
int main(void)
{
int arr[1024] , c , i , k , n ;
printf("n : ") ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) arr[i] = 1 ;
for(c = i = 0 , k = n ; k > 1 ; i ++) {
if(arr[i % n]) {
c ++ ;
if(c == 3) {
arr[i % n] = 0 ;
k -- ;
c = 0 ;
}
}
}
for(i = 0 ; i < n ; i ++) if(arr[i]) break ;
printf("%d\n" , i + 1) ;
}
|