| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 372 人关注过本帖
标题:请大神帮忙看看,为什么没有输出?
只看楼主 加入收藏
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
请大神帮忙看看,为什么没有输出?
程序代码:
/*输出环形矩阵,如:
输入 5 6   效果如下
1 1 1 1 1 1
1 2 2 2 2 1
1 2 3 3 2 1
1 2 2 2 2 1
1 1 1 1 1 1
*/

#include<cstdio>
void main()
{
    const int max=30;
    int m,n;
    int a[max][max];
    printf("input the integer m,n");
    scanf("%d,%d",&m,&n);
    int k=0;                                //一圈为一层,层数
    int counter=1;
    while(counter<=m*n)
    {
        for(int i=k,j=k;j<=n-k-1;j++)       //向右
        {
            a[i][j]=k+1;
            counter++;
        }
        for(int i=k+1,j=n-k-1;i<=m-k-1;i++)   //向下
        {
            a[i][j]=k+1;
            counter++;
        }
        for(int i=m-k-1,j=n-k-2;j>=k;j--)    //向左
        {
            a[i][j]=k+1;
            counter++;
        }
        for(int i=m-k-2,j=k;i>k;i--)         //向上
        {
            a[i][j]=k+1;
            counter++;
        }
        k++;
    }
  for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            printf("%4d ",a[i][j]);
        }
       printf("\n");
    }
}
搜索更多相关主题的帖子: color 矩阵 
2012-12-25 11:47
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:20 
楼主你的代码完全没有错,我估计你没有得到预期的结果,可能是你在输入5,6的时候没有注意到一点: scanf("%d,%d",&m,&n);你这里的scanf是这样的:"%d,%d"两个%d之间有个英文式的逗号,这就要求你在运行的时候,输入两个数字的时候,中间必须有个逗号,还要是英文式的
图片附件: 游客没有浏览图片的权限,请 登录注册

当然,你也可以删掉变为这样:scanf("%d %d",&m,&n)这就要求你在输入两个数字的时候,必须要用空格隔开两个数字,懂了吗

思考赐予新生,时间在于定义
2012-12-25 11:55
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:0 
非常感谢,
2012-12-25 11:57
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
呵呵,那个scanf()语句啊,还有很多细节呢。你多看看一些经典题目就知道了,我都被它弄得头疼死了

思考赐予新生,时间在于定义
2012-12-25 12:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
够复杂的
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define MIN(a,b) ( (a)<(b) ? (a) : (b) )

void foo( unsigned r, unsigned c )
{
    for( unsigned i=0; i<r; ++i )
    {
        for( unsigned j=0; j<c; ++j )
        {
            unsigned d = MIN( MIN(i+1,r-i), MIN(j+1,c-j) );
            printf( " %u", d );
        }
        printf( "\n" );
    }
}

int main()
{
    foo( 5, 6 );

    return 0;
}

2012-12-25 12:40
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:0 
回复 5楼 rjsp
perfect,厉害阿
2012-12-25 13:08
快速回复:请大神帮忙看看,为什么没有输出?
数据加载中...
 
   



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

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