![]() |
#2
邓士林2013-05-02 17:51
|

#include<iostream>
using namespace std;
void main()
{
int n;
cin>>n;
int *r=new int[(2*n)*(2*n)];
for(int i=0;i<n;i++)
{
int j=i;
for(int w=0;w<2*n-2*i-1;w++)
{
if(j==i || j==2*(n-i-1))
{for(int m=i;m<2*n-i-1;m++)
{r[j*m]=i+1;
cout<<"r["<<j<<"*"<<m<<"]="<<i+1<<" ";}
cout<<endl;}
else
{
r[j*(2*n-2*i-1)]=i+1;
cout<<"r["<<j<<"*"<<2*n-2*i-1<<"]="<<i+1<<" ";
r[j*i]=i+1;
cout<<"r["<<j<<"*"<<i<<"]="<<i+1<<" ";
cout<<endl;
}
j++;
}
}
r[2*2]=1;//加上这句话就能知道有好几个数据是共用同一空间。
for(int t=0;t<2*n-1;t++)
{
for(int p=0;p<2*n-1;p++)
cout<<r[t*p]<<" ";
cout<<endl;
}
cin>>n;
}
大神们。。帮忙看下吧,谢谢啦,using namespace std;
void main()
{
int n;
cin>>n;
int *r=new int[(2*n)*(2*n)];
for(int i=0;i<n;i++)
{
int j=i;
for(int w=0;w<2*n-2*i-1;w++)
{
if(j==i || j==2*(n-i-1))
{for(int m=i;m<2*n-i-1;m++)
{r[j*m]=i+1;
cout<<"r["<<j<<"*"<<m<<"]="<<i+1<<" ";}
cout<<endl;}
else
{
r[j*(2*n-2*i-1)]=i+1;
cout<<"r["<<j<<"*"<<2*n-2*i-1<<"]="<<i+1<<" ";
r[j*i]=i+1;
cout<<"r["<<j<<"*"<<i<<"]="<<i+1<<" ";
cout<<endl;
}
j++;
}
}
r[2*2]=1;//加上这句话就能知道有好几个数据是共用同一空间。
for(int t=0;t<2*n-1;t++)
{
for(int p=0;p<2*n-1;p++)
cout<<r[t*p]<<" ";
cout<<endl;
}
cin>>n;
}
4、由键盘输入一个自然数N(1≤N≤9),要求程序在屏幕上输出如下图形。
N=1时: N=3时: N=4时:
1 11111 1111111
12221 1222221
12321 1233321
12221 1234321
11111 1233321
1222221
1111111
注:应保证N在图形中只出现一次,且在中心。
这个我写完了之后发现有些数据是共用同一内存空间。
麻烦高手指点一下吧