| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖, 1 人收藏
标题:新手刚学 C++ 求指教,这哪错了?
只看楼主 加入收藏
lumia610
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-11-27
结帖率:33.33%
收藏(1)
已结贴  问题点数:10 回复次数:6 
新手刚学 C++ 求指教,这哪错了?
#include<iostream>
using namespace std;
int main()
{
    int i,j,k,n;
    k=1;
    int a[100][100];
    for(i=1;i<=10;i=i+1)
    {
        for(j=1;j<10-i+1;j=j+1)
        {
            a[i+j-1][j]=k;
            k=k+1;
        }
    }
    for(i=1;i<=10;i++)
    {
        cout<<"\n";
        for(j=1;j<=i;j++)
            cout<<a[i][j];
    }   
    return 0;
}//目的是为了这样输出数,数一直不对啊。。我刚学也看不出来..
1
5 2
8 6 3
10 9 7 4
2014-05-07 20:13
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
收藏
得分:4 
int a[100][100]={0};  初始化为0

for(i=1;i<=10;i++)
    {
        cout<<"\n";
        for(j=1;j<=i;j++)
           {
               if(a[i][j]!=0)        我也不知道为什么会输出那么多,所以做了个判断
            cout<<a[i][j]<<" ";
               else break;
        }

    }


我也是初学者    互学

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-05-07 22:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:4 
程序代码:
#include <cstdio>

int main()
{
    int a[100][100];

    const int n = 4;

    // 填充
    int k = 0;
    for( int i=0; i!=n; ++i )
        for( int j=0; i+j!=n; ++j )
            a[i+j][j] = ++k;

    // 输出
    for( int i=0; i!=n; ++i )
    {
        for( int j=0; j!=i; ++j )
            printf( "%d ", a[i][j] );
        printf( "%d\n", a[i][i] );
    }

    return 0;
}
2014-05-08 09:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
回复 3 楼 rjsp
本来想把我的代码贴出来的

但是看了你的代码  我的太臃肿了

DO IT YOURSELF !
2014-05-08 10:14
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 3 楼 rjsp
我使用的是一维数组
相关代码
程序代码:
    printf("请输入待填充的行列数:\n");
    scanf("%d",&n);
    ptable=(int*)malloc(sizeof(int)*n*n);  //申请空间
    for(i=0;i<n*n;i++) *(ptable+i)=0;  //初始化

DO IT YOURSELF !
2014-05-08 10:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用wp231957在2014-5-8 10:14:40的发言:

本来想把我的代码贴出来的
 
但是看了你的代码  我的太臃肿了
我只是顺着楼主的思路写代码的,
若非如此,还可以更简单些,没必要分配内存,直接就是个等差数列求和公式

程序代码:
#include <cstdio>

int main()
{
    const int n = 4;

    // 输出
    for( int i=0; i!=n; ++i )
        for( int j=0; j<=i; ++j )
            printf( "%d%c", n*(1+n)/2-(n-i+j)*(1+n-i+j)/2+j+1, " \n"[j==i] );

    return 0;
}

2014-05-08 12:19
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用rjsp在2014-5-8 12:19:36的发言:

我只是顺着楼主的思路写代码的,
若非如此,还可以更简单些,没必要分配内存,直接就是个等差数列求和公式

#include <cstdio>

int main()
{
    const int n = 4;

    // 输出
    for( int i=0; i!=n; ++i )
        for( int j=0; j<=i; ++j )
            printf( "%d%c", n*(1+n)/2-(n-i+j)*(1+n-i+j)/2+j+1, " \n"[j==i] );

    return 0;
}


厉害  有空研究研究
这类题目我都是先填冲数组  比较麻烦

DO IT YOURSELF !
2014-05-08 12:28
快速回复:新手刚学 C++ 求指教,这哪错了?
数据加载中...
 
   



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

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