m0_58055613 2021-07-03 02:47 采纳率: 100%
浏览 67
已采纳

C++程序采用指针做

C 有一叠卡片,卡片号依次为1到n,并且所有卡片的正面朝上。从卡片号2开始,把凡是偶数的 卡片都翻成正面朝下。再从3号卡片开始,把凡是卡片号为3的倍数的卡片都翻一面(即把正面 朝上的翻成正面朝下,把正面朝下的翻成正面朝上)。下一步从4号卡片开始,把凡是卡片号 为4的倍数的卡片都翻转一次,依次类推。问:最后哪些卡片朝上。

  • 写回答

3条回答 默认 最新

  • 关注

    用1表示正面朝上。0表示正面朝下。为了方便用数组1到n下标存放,下标0不用

    代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    #include<stdio.h>
    int main ()
    {
        int i,j,n=10;
        printf("输入n:");
        scanf("%d", &n);
        int a[n+1];
        for(i = 1; i <= n; i ++)
        {
            a[i] = 1;
        }
        for(i = 2; i <= n; i ++)
        {
            for(j = i; j <= n; j += i)
            {
                a[j] = !a[j];
            }
        }
        for(i = 1; i <= n; i ++)
        {
            printf("%d ",a[i]);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?