| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 649 人关注过本帖
标题:有个C语言题目请教大家,本人初学写出代码
只看楼主 加入收藏
jingtaichuan
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-21
收藏
 问题点数:0 回复次数:4 
有个C语言题目请教大家,本人初学写出代码
有2行3列的矩形框,填入1,2,3,4,5,6六个数字,要求左边的比右边的大,上边的比下边的大,用 C 写出代码,编程求所有可能的填写方法。本人初学求大侠写出代码!!!谢谢
搜索更多相关主题的帖子: 矩形 数字 代码 初学 
2008-12-14 14:33
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
回复 楼主 jingtaichuan 的帖子
左边的比右边的大,上边的比下边的大???   
对角线么? 这样/or \?

寡人有疾,寡人好色......
2008-12-14 14:39
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
哦 ,不好意思,我看出题意了!

寡人有疾,寡人好色......
2008-12-14 14:47
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
程序代码:
/*-----------------------------------------------------------------------------

        有2行3列的矩形框,填入1,2,3,4,5,6六个数字,要求左边的比右边的大,
    上边的比下边的大,用 C 写出代码,编程求所有可能的填写方法。

------------------------------------------------------------------------

        我的想法:用全排列把 6 个数字全部排列,然后从中找出符合条件的组合。
    代码的质量不高,请楼主参考一下。并请高手指出错误,谢谢。

----------------------------------------------------------------------------*/
#include<stdio.h>
#define SWAP(b,c) {int t=b;b=c;c=t;}
#define X 2
#define Y 3
#define N 6
int a[X][Y];
void endow(int *num)/*  赋值,把二维数组变为一维指针形式 */
{
    int *b,i=0;
    b=a;
    while(i++<N)
        *b++=*num++;
}
int check()  /* 检查组合,如果不符合条件,返回 0 ,否则,返回 1 */
{
    int i,j,k;
    for(i=0;i<X;++i)
        for(j=0;j<Y;++j)
            for(k=j+1;k<Y;++k)
                if(a[i][j]<a[i][k])
                    return 0;
    for(i=0;i<Y;++i)
        for(j=0;j<X;++j)
            for(k=j+1;k<X;++k)
                if(a[j][i]<a[k][i])
                    return 0;
    return 1;
}
void print()  /* 输出 */
{
    int i,j;
    if(check()) /* 如果返回值为真,输出数组 */
    {
        for(i=0;i<X;++i)
        {
            for(j=0;j<Y;++j)
                printf("%3d",a[i][j]);
                printf("\n");
        }
        printf("-----------------\n");
    }
}
void SORT(int *num,int k) /* 全排列 */
{
    int i;
    if(k+1==N)
    {
        endow(num);
        print();
        return;
    }
    SORT(num,k+1);
    for(i=k+1;i<N;++i)
    {
        SWAP(num[k],num[i]);
        SORT(num,k+1);
        SWAP(num[k],num[i]);
    }
}
int main(void)
{
    int num[N];
    int i=0;
    for(;i<N;++i) /* 定义个一维数组,并赋值 */
        num[i]=i+1;
    SORT(num,0);
    return 0;
}


2008-12-14 21:59
yulonh
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-12-14
收藏
得分:0 
本菜鸟编了一个
#include "stdafx.h"
#include "stdio.h"

void main()
{
int i,j,k,n,m,l,a[6];
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
for(k=1;k<=6;k++)
for(l=1;l<=6;l++)
for(n=1;n<=6;n++)
for(m=1;m<=6;m++)
if(i!=k&&i!=n&&i!=m&&j!=l&&j!=m&&k!=l&&k!=n&&l!=m)
if(i>j&&j>k&&l>n&&n>m&&i>l&&j>n&&k>m)
printf("%d %d %d\n%d %d %d\n\n",i,j,k,l,n,m);
}

粗体文字 Abc字体为仿宋 总喜欢在人群中寻找自己……
2008-12-15 12:31
快速回复:有个C语言题目请教大家,本人初学写出代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018661 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved