| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2220 人关注过本帖
标题:数字旋涡问题
只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
没好的算法回很麻烦的啊```

程序是要人输入方正的边长```事先不知道``所以用数组不可以或是很不方便`

应该思考下有没有好的方法``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-03-15 22:27
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
收藏
得分:0 
以前写过,可以用方向控制。
当时称为圈数吧

上善若水,水善利万物而不争,处众人之所恶
2008-03-15 23:39
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
#include <stdio.h>

void input_int(char * str, int * a);

int main(void)
{
    int i, j;
    int a;

    input_int("请输入一个数字: ", &a);   /* 获取一个数字,存放在变量a中 */
   
    for(i = 0; i < a; i++)
    {
        for(j = 1; j <= a; j++)
        {
            printf("%d ", (a * i) + j );
        }
        putchar('\n');
    }

    getchar();
    return 0;
}

void input_int(char * str, int * a)
{
    int k;
    do{
        printf("%s", str);
        k = scanf("%d", a);
        while(getchar() != '\n');
    }while(k != 1);
}

—>〉Sun〈<—
2008-03-16 00:50
火焰邪神
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-16
收藏
得分:0 
其实很简单的算法
很好很强大啊
2008-03-16 10:01
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <alloc.h>
void main()
{
    int n,i,j,k,l,m,*buffer;
    printf(" n=? \n");
    scanf("%d",&n);
    buffer=(int*)malloc(n*n*sizeof(int));
    if(!buffer)
        return;
    buffer[n/2*n+n/2]=n*n;     /*为中心元素赋值,当n为奇数时需要。*/
    for(l=n-1,i=j=0,k=1;l>0;i++,j++,l-=2)
    {
        for(m=0;m<l;m++)
            buffer[i*n+(j++)]=k++;
        for(m=0;m<l;m++)
            buffer[(i++)*n+j]=k++;
        for(m=0;m<l;m++)
            buffer[i*n+(j--)]=k++;
        for(m=0;m<l;m++)
            buffer[(i--)*n+j]=k++;
    }

    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%3d ",buffer[i*n+j]);
        }
        printf("\n");
    }
    free(buffer);
    getch();
}


[[it] 本帖最后由 hoodlum1980 于 2008-3-16 15:31 编辑 [/it]]

number.jpg (33.36 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-03-16 15:12
luck3359
Rank: 1
来 自:江西
等 级:新手上路
帖 子:81
专家分:0
注 册:2008-3-9
收藏
得分:0 
这些都是你们自己写的啊
太厉害了吧;
2008-03-16 15:21
蓝色神话
Rank: 2
等 级:论坛游民
威 望:1
帖 子:404
专家分:24
注 册:2006-5-11
收藏
得分:0 
[bo]以下是引用 [un]死了都要C[/un] 在 2008-3-15 22:27 的发言:[/bo]

没好的算法回很麻烦的啊```

程序是要人输入方正的边长```事先不知道``所以用数组不可以或是很不方便`

应该思考下有没有好的方法``

动态二维数组应该能行!
2008-03-16 20:29
longzaitianya
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-3-10
收藏
得分:0 
上面的程序能解决问题!
2008-03-17 10:58
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
[bo]以下是引用 [un]hoodlum1980[/un] 在 2008-3-16 15:12 的发言:[/bo]

#include
#include
void main()
{
    int n,i,j,k,l,m,*buffer;
    printf(" n=? \n");
    scanf("%d",&n);
    buffer=(int*)malloc(n*n*sizeof(int));
    if(!buffer)
        return;
    buffer[n/2*n+n/2]=n*n;     /*为中心元素 ...

这个程序可以了随便给什么n都可以

学习需要安静。。海盗要重新来过。。
2008-03-17 11:06
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
得分:0 
其实我自己也做了,一个while 四个for
但是如果输入奇数,就不行!
2008-03-22 12:51
快速回复:数字旋涡问题
数据加载中...
 
   



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

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