| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖, 1 人收藏
标题:问一个循环输出的问题
只看楼主 加入收藏
kv9698
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-18
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:6 
问一个循环输出的问题
小弟有个问题,自己没想出来,看看大家能不能帮帮忙.

假设i=3,T=2
如果想printf输出如下结果
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
也就是i^T=3^2 共9个结果
如果T是已知的,用2重循环很容易,即T等于多少就用几重循环
假如T是用scanf输入的或者#define 宏定义的,那该怎么输出任意i^T个结果呢?
搜索更多相关主题的帖子: 输出 
2009-09-18 05:27
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:6 
不明白你i^T 是什么意思
2009-09-18 09:27
kv9698
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-18
收藏
得分:0 
就是i的T次幂
比如问题里就是输出3^2=9个数,输出顺序按题所示

又例如i=3,T=4
那就是
1 1 1 1
1 1 1 2
1 1 1 3
.
.
.
.
3 3 3 2
3 3 3 3
一共81个
2009-09-18 09:36
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:6 
小弟不才,写了一个,请验证.

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define I 3
#define T 2
 
int array[T];
 
void sort(int *point)
{
 (*point)++;
 if(*point<=I) return;
   else {*point=1;sort(--point);}
 }
 
int main()
{
 int i,j,num;
 for(i=0;i<T-1;array[i++]=1);
 num=(int)pow(I,T);
 for(i=0;i<num;++i)
    {
     sort(&array[T-1]);
     for(j=0;j<T;++j)
        printf("%3d",array[j]);
     printf("\n");
    }
 system("pause");
 return 0;
}
2009-09-18 10:17
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:6 
#include <stdio.h>
#include <stdlib.h>

#define T 4
#define I 2
int t[T] = {};

void dfs(int d)
{
    int i;
    if (d == T)
    {
        for (i = 0; i < d; ++i)
            printf("%d ", t[i]);
        putchar('\n');
        return;
    }
    for (i = 0; i < I; ++i)
    {
        t[d] = i + 1;
        dfs(d + 1);
    }
}

int main(void)
{
    dfs(0);
    return 0;
}

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-09-18 10:34
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:0 
人家是要输入T 你们都先初始化好了 。。。。
2009-09-18 11:27
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
以下是引用atom_09在2009-9-18 11:27的发言:

人家是要输入T 你们都先初始化好了 。。。。

不是一回事么?自己输入的话定义一个长点的一位数组就可以了吧.
2009-09-18 11:30
快速回复:问一个循环输出的问题
数据加载中...
 
   



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

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