注册 登录
编程论坛 C++教室

我是新手,关于指针数组的疑问有很多,例题如下,求大神帮忙解决

橙子style 发布于 2015-12-01 22:10, 954 次点击
就是用C++编程实现把输入任意整数n后,可打印出n行三角字符阵列图形。例如,输入整数5时,程序运行结果如下:
ENTER A NUMBER:5<回车>
A  C  F  J  O
B  E  I  N
D  H  M
G  L
K
8 回复
#2
rjsp2015-12-02 09:06
程序代码:
#include <iostream>

void foo( unsigned n )
{
    for( unsigned r=0,c=0; r!=n; r+c+1==n?(++r,c=0):++c )
        std::cout << char((r+c+1)*(r+c)/2+c+'A') << " \n"[r+c+1==n];
}

int main( void )
{
    unsigned n;
    std::cout << "ENTER A NUMBER:";
    std::cin >> n;
    foo( n );

    return 0;
}
#3
橙子style2015-12-02 14:39
回复 2楼 rjsp
谢谢啦,但是那个foo函数不是很明白,你能给我解释一下吗?
#4
林月儿2015-12-02 21:16
程序代码:
void foo( unsigned n )
{
    for( unsigned r=0,c=0; r!=n; r+c+1==n?(++r,c=0):++c )
        std::cout << char((r+c+1)*(r+c)/2+c+'A') << " \n"[r+c+1==n];//(r+c+1)*(r+c)/2+c==》内圈前n项和加上列标得到r行c列的参数值在加上A转成字母
}
#5
仰望星空的2015-12-03 08:55
这样排布的数学原理是啥啊,挺有意思的感觉~
#6
wengbin2015-12-03 16:09
我贴一个初学者能看的懂的,n最大值能取7,但输出时,最后现个字符就只能强制为X了。
程序代码:
#include<iostream>
int main()
{

    const int MAX=7;
    int n=7;
    char B[MAX][MAX]={  {' ',' ',' ',' ',' ',' ',' '},
               {' ',' ',' ',' ',' ',' ',' '},
               {' ',' ',' ',' ',' ',' ',' '},
               {' ',' ',' ',' ',' ',' ',' '},
               {' ',' ',' ',' ',' ',' ',' '},
               {' ',' ',' ',' ',' ',' ',' '},
               {' ',' ',' ',' ',' ',' ',' '}  };
    std::cout<<"enter the n:";
    std::cin>>n;
    int i=0;
    for(int j=0;j<n;j++)
    {
        int q=j;
        int k=0;
        while(q>=0)
        {
            B[q][k]='A'+i;
            if(B[q][k]>'Z')
            {
                B[q][k]='X';
            }
            i+=1;
            q--;
            k++;
        }
    }
    for(int m=0;m<n;m++)
    {
        for(int p=0;p<n;p++)
        {
                if(B[m][p]!=' ')
                {
                    std::cout<<B[m][p]<<"\t";
                }
        }
        std::cout<<std::endl;
    }
    return 0;
}


[此贴子已经被作者于2015-12-3 16:17编辑过]

#7
rolimi2015-12-04 20:11
这个主要就是找规律了。这个阵列中a[r][c] = (r+c)*(r+c+1)/2 + c + 'A',r和c从0开始
#8
橙子style2015-12-06 16:48
谢谢大家啦
1