我是新手,关于指针数组的疑问有很多,例题如下,求大神帮忙解决
就是用C++编程实现把输入任意整数n后,可打印出n行三角字符阵列图形。例如,输入整数5时,程序运行结果如下: ENTER A NUMBER:5<回车>
A C F J O
B E I N
D H M
G L
K
2015-12-01 22:10
程序代码:#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;
}
2015-12-02 09:06
,但是那个foo函数不是很明白,你能给我解释一下吗?
2015-12-02 14:39
程序代码: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转成字母
}

2015-12-02 21:16
2015-12-03 08:55
,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编辑过]
2015-12-03 16:09
2015-12-04 20:11





2015-12-06 16:48