数组练习

一个简单的数组练习,没做成函数,简单的实现了目的,效果图如下 :

代码如下 :

 

# include <iostream>

using namespace std ;

int main ()

{

	int n;

	int i , j ;

	do 
	{
		cout << "请输入n  (n>3 && n<20)" ;
		cin >> n ;
	}while (n<=3||n>=20) ;

	char array [19][19] ;

	for (j=0;j<19;j++)      //第一行的显示
	{	
		if (j<n)
			array[0][j] = 'T' ;
		else 
			array[0][j] = 32 ;
	}

	for (j=0;j<19;j++)            //最后一行的显示 
	{
		if (j<n)
			array[n-1][j] = 'T' ;
		else 
			array[n-1][j] = 32 ;
	}

	for (i=0; i<19; i++)                
	{
		for ( j=0; j<19;j++)
		{
			// n 行 以下 全是空格
			if (i>=n)              
			    array[i][j] = 32;

			 // 两边的显示 为 TJ JT 
			if(i>0 && i<n-1 )               
			{	
				array [i][0] = 'T';
				array [i][1] = 'J';
				array [i][n-1] = 'T' ;
				array [i][n-2] = 'J' ;
			}

			//第二行和倒数第二行的 J 
			if (i==1 || i==n-2)
			{
				array [i][j] = 'J' ;
			}

		    //右边 JT 后 显示空格
			if (j>=n)     
			{
				array [i][j] = 32 ;
			}
  
            //中间的数字


			if (n>4) 
			{
				if ( (i>=2 && i <= n-3 )&&(j==n-3 || j==2))
					array[i][j]='1' ; 

				if ((i==2 || i==n-3) && (j>2 && j<n-3))
					array [i][j] = '1';
			} 

			if (n>5)
			{
				if (( i >=3 && i <= n -4) && (j==n-4 || j == 3))
					array [i][j] = '2' ;
				
				if ((i==3 || i==n-4) && (j>3 && j<n-4))
					array [i][j] = '2';
			}
 
			if (n>6)
			{
				if ((i >=4 && i <= n -5) && (j==n-5 || j == 4))
					array [i][j] = '3' ;
				
				if ((i==4 || i==n-5) && (j>4 && j<n-5))
					array [i][j] = '3';
			}
 
			if (n>7)
			{
				if ((i >=5 && i <= n -6) && (j==n-6 || j == 5))
					array [i][j] = '4' ;
				
				if ((i==5 || i==n-6) && (j>5 && j<n-6))
					array [i][j] = '4';
			}

			if (n>8)
			{
				if ((i >=6 && i <= n -7) && (j==n-7 || j == 6))
					array [i][j] = '5' ;
				
				if ((i==6 || i==n-7) && (j>6 && j<n-7))
					array [i][j] = '5';
			}

			if (n>9)
			{
				if ((i >=7 && i <= n -8) && (j==n-8 || j == 7))
					array [i][j] = '6' ;
				
				if ((i==7 || i==n-8) && (j>7 && j<n-8))
					array [i][j] = '6';
			}

			if (n>10)
			{
				if ((i >=8 && i <= n -9) && (j==n-9 || j == 8))
					array [i][j] = '7' ;
				
				if ((i==8 || i==n-9) && (j>8 && j<n-9))
					array [i][j] = '7';
			}

			if (n>11)
			{
				if ((i >=9 && i <= n -10) && (j==n-10 || j == 9))
					array [i][j] = '8' ;
				
				if ((i==9 || i==n-10) && (j>9 && j<n-10))
					array [i][j] = '8';
			}
			
		} 
	}

	for (i =0 ; i<19 ;i++)
	{
		for (j=0;j<19 ;j++)
		{
			cout << array[i][j] ;
		}
		cout << endl ;
	}

	return 0 ;
}


没用到什么高明的东西,

思路就是先编写上下两行的TJ  然后写代码输出周围的1,2,3,4,……,8, 这样写程序是不是有些麻烦,或许有更好的算法。

请各位多多指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值