用C语言或者C++编程:把存放在队列中的数字序列每3位分一组,然后还要判断最后一组是3位还是2位。
怎么把这个编出来呢
完整的代码如下:
#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;
}
测试结果如下图:
用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢。
itoa转换成字符串,求长度,判断是否能被3整除
出队的时候记录一下就可以了,首先要有个标志sign来标记当前组的个数,每当出队,sign+1,如果sign==3,就把它从上个标志处到这里分成一组,同时sign恢复初值0,队为空时sign的值就是最后一组的个数。
如果只想求最后一组的个数可以用长度对3求余的方法
分组后是要放进二维数组么