#includestdiohint main int nijk; scanfd&n; int a1051515; int m110; int max=0bianhao=0last=-1; fori=0;in;i++ scanfd&mi; ifmimax max=mi; forj=0;jmax;j++ fork=0;k10;k++ fori=0;in;i++ ifjmi
#include<stdio.h> int main() { int n,i,j,k; scanf("%d",&n); // 输入n,表示有n个序列 int a[105][15][15]; // 定义一个三维数组a,用来存储序列的编号 int m[110]; // 定义一个数组m,用来存储每个序列的长度 int max=0,bianhao=0,last=-1; // max用来记录所有序列中的最大长度,bianhao用来表示序列的编号,last用来记录上一个序列的编号 for(i=0;i<n;i++){ scanf("%d",&m[i]); // 输入每个序列的长度 if(m[i]>max){ max=m[i]; // 更新max的值为最大长度 } } for(j=0;j<max;j++){ // 遍历每个序列的每个位置 for(k=0;k<10;k++){ // 遍历每个位置的每个数字 for(i=0;i<n;i++){ // 遍历每个序列 if(j<m[i]){ // 如果当前位置小于序列长度 if(last==i){ bianhao+=2; // 如果上一个序列编号与当前序列编号相同,则编号应该相邻且连续 }else{ bianhao++; // 否则,编号自增1 } a[i][j][k]=bianhao; // 将编号存储在三维数组a中 last=i; // 更新last为当前序列编号 } } } } for(i=0;i<n;i++){ // 遍历每个序列 printf("#%d\n",i+1); // 输出序列编号 for(j=0;j<m[i];j++){ // 遍历每个序列的每个位置 for(k=0;k<9;k++){ // 遍历每个位置的每个数字 printf("%d ",a[i][j][k]); // 输出每个位置的数字 } printf("%d\n",a[i][j][k]); // 输出每个位置的最后一个数字 } } return 0; // 程序结束
原文地址: https://www.cveoy.top/t/topic/iwH8 著作权归作者所有。请勿转载和采集!