我自己写了个程序,但是和预想的不一样,好像没输出了。不知道哪里错了,请人看看。
#include <stdio.h>
#include <string.h>
#include <math.h>
void began(int *a,int n)
{
for(int i=0;i<n;i++)
{
a[i]=0;
}
}
void out(int *a,int n)
{
int cnt=n;
int b;
for(int i=0;i<n;i++)
{
b++;
if(b%3==0)
{
a[i]=0;
cnt--;
if(cnt==1)
{
break;
}
}
if(i==n-1)
{
i=-1;
}
}
}
int main()
{
int n;
scanf("%d",&n);
int a[n];
began(a,n);
out(a,n);
for(int i=0;i<n;i++)
{
if(a[i]==1)
{
printf("NO.%d",i+1);
}
}
}
b没赋值
47行a[i]==1是最后留下的话,前面a数组赋值不应该是1嘛,然后报3的赋0,还是我理解错误了