69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
int main(void)
{
int digit_list[] = { 1, 1, 1, 2, 2, 2, 2, 3, 3,4 };
int family[10][10];
int idx, i = 0, j = 0;
int len, first;
memset(family, -1, sizeof(family));
first = digit_list[0];
len = sizeof(digit_list) / sizeof(digit_list[0]);
for (idx = 0; idx < len; idx++) {
if (digit_list[idx] == first) {
family[i][j++] = digit_list[idx];
} else {
first = digit_list[idx];
i++;
j = 0;
family[i][j++] = digit_list[idx];
}
}
/*
for (i = 0; i < len; i++)
printf("%d ", digit_list[i]);
putchar(10);
*/
for (i = 0; i < 10; i++) {
if (family[i][0] < 0)
break;
for (j = 0; j < 10; j++) {
if (family[i][j] >= 0)
printf("%d ", family[i][j]);
}
putchar(10);
}
return 0;
}
二维数组的行数和列数都要和一维数组相同,保证两个极限情况,都是一类或都是不同的类。