C趣味程序百例(18)填表格

C趣味程序百例(18)填表格,第1张

C趣味程序百例(18)填表格,第2张

59.填写表格
填写下表中的1、2、3、4、5、6,使每列右边的数字大于左边的数字,每行下面的数字大于上面的数字。按照这个要求,有多少种填充方式?
*问题分析与算法设计
根据题目要求,数字1必须放在第一行第一列的网格中,数字6必须放在第二行第三列的网格中。在实现中,它可以由一维数组表示,前三个元素表示第一行,后三个元素表示第二行。按照原题初始化数组,然后按照题目中填充数字的要求进行测试。
*程序和程序注释
# include
int jud 1(int s[]);
void print(int u[]);
int count;/* counter */
void main()
{
static int a[]= { 1,2,3,4,5,6 };/*初始化数组*/
printf("满足上述条件的可能表为:\ n ");
for(a[1]= a[0]+1;a[1]for(a[2]= a[1]+1;a[2]for(aint jud 1(int s[])
{
int I,l;
for(l = 1;l for(I = l+1;i if(s[l]==s[i])返回0;/*如果数组中有重复的数字,返回0*/
返回1;/*如果数组中没有重复的数字,返回1*/
}= a[0]+1;a[3] for(avoid print(int u[])
{
int k;
printf(" \ n没有。:%d ",++ count);
for(k = 0;If (k% 3 = = 0)/*输出数组的前三个元素作为第一行*/
printf("\n%d ",u[k]);
else /*将数组的后三个元素作为第二行输出*/
printf("%d ",u[k]);
}
*运行结果
满足上述条件的可能表为:
1号:2号:3号:4号:5号:
1 2 3 1 2 4 1 2 5 1 3 4 4 4=a[1]>a[3)?a[1]+1:a[3]+1;第二行的A[4] /* A [4]必须大于左边的a[3]和最上面的A[1]*/
if(jud 1(A))print(A);/*如果标题令人满意,打印结果*/
}

[3]

[4]

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C趣味程序百例(18)填表格

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情