qq_37330911
qq_37330911
采纳率100%
2017-05-24 14:44 阅读 1.1k

C编程问题求解,求指点,

用C语言或者C++编程:把存放在队列中的数字序列每3位分一组,然后还要判断最后一组是3位还是2位。
怎么把这个编出来呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    fight_in_dl 战在春秋 2017-05-24 23:59

    完整的代码如下:

    #include <stdio.h>
    int main()
    {
        int queueArray1[] = { 1,2,3,4,5,6,7,8,9,10,11};
        double  queueArray2[] = {2.5,3.6,4.0,6.7,8.6,9.8,10.3};
    
        int lenArray1 = sizeof(queueArray1) / sizeof(int);
        int lenArray2 = sizeof(queueArray2) / sizeof(double);
    
        printf("第一个队列数据为:\n");
        for (int i = 0; i < lenArray1; i++)
        {
            printf("%d ", queueArray1[i]);
        }
    
        printf("\n第一个队列分组结果为:\n");
    
        for (int i = 0; i < lenArray1; i++)
        {
            if ( i%3 ==0 && i >2 )
            {
                printf("\n");
            }
            printf("%d ", queueArray1[i]);
    
        }
        printf("\n第一个队列最后一组有%d个数字\n\n", lenArray1%3 == 0 ? 3:  lenArray1 % 3);
    
        printf("第二个队列数据为:\n");
        for (int i = 0; i < lenArray2; i++)
        {
            printf("%3.2f ", queueArray2[i]);
        }
    
        printf("\n第二个队列分组结果为:\n");
    
        for (int i = 0; i < lenArray2; i++)
        {
            if (i % 3 == 0 && i >2)
            {
                printf("\n");
            }
            printf("%3.2f ", queueArray2[i]);
    
        }
        printf("\n第二个队列最后一组有%d个数字\n", lenArray2 % 3 == 0 ? 3 :  lenArray2 % 3);
    
        return 0;
    }
    

    测试结果如下图:

    图片说明

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢。

    点赞 4 评论 复制链接分享
  • loveitboy2 壮飞 2017-05-24 23:42

    出队的时候记录一下就可以了,首先要有个标志sign来标记当前组的个数,每当出队,sign+1,如果sign==3,就把它从上个标志处到这里分成一组,同时sign恢复初值0,队为空时sign的值就是最后一组的个数。
    如果只想求最后一组的个数可以用长度对3求余的方法

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-05-24 15:53

    itoa转换成字符串,求长度,判断是否能被3整除

    点赞 评论 复制链接分享
  • baidu_38196535 Demo_gu__ 2017-05-24 23:46

    分组后是要放进二维数组么

    点赞 评论 复制链接分享

相关推荐