7 输出图形

#include <stdio.h>   
int main(){  
	  int n,j,i,k;//n是一个奇数 
	  char x,q,a[1000][1000];
	  scanf("%d %c",&n,&x);
	  if(n%2!=0&&((64<x&&x<91)||(96<x&&x<123))){
	  	 if(96<x&&x<123)x-=32;
	  	 if(n==1)printf("%c\n",x);
		 else{
	 	    for(j=2;j<=n-1;j+=2){
	 	    	for(i=2;i<=n-1;i++)a[i][j]=' ';
			 }
			 for(j=1;j<=n;j++){
			 	a[1][j]=65+(x-1-65+j)%26;
			 }
			 for(j=1;j<=n;j+=2){
			 	for(i=2;i<=n;i++){
			 		a[i][j]=65+(a[1][j]-1-65+i)%26;
					 				 }
			 }
			 for(j=1;j<=n;j++){
			 	a[n][j]=65+(a[n][1]-1-65+j)%26;
	 }   

  	for(i=1;i<=n;i++){
  		for(j=1;j<=n;j++)printf("%c",a[i][j]);
  			  printf("\n");
	  }

  }
}
  else printf("Input error!\n");
  return 0;  
}  

 

#include <stdio.h>    
int main(){   
    int n,j,i,k;//n是一个奇数  
      char x,q,a[1000][1000]; 
    scanf("%d %c",&n,&x); 
      if(n%2!=0&&((64<x&&x<91)||(96<x&&x<123))){ 
        if(96<x&&x<123)x-=32; 
        if(n==1)printf("%c\n",x); 
      else{ 
         for(j=1;j<=n;j++)a[1][j]=65+(x-1-65+j)%26; 
                  
            for(i=2;i<=n;i++){ 
              a[i][1]=65+(x-1-65+i)%26; 
              a[i][(n+1)/2]=65+(a[1][(n+1)/2]-1-65+i)%26; 
                a[i][n]=65+(a[1][n]-1-65+i)%26; 
            } 
            for(j=2;j<=n;j++)a[n][j]=65+(a[n][1]-1-65+j)%26; 
                  
                 }   
             
 
     for(i=1;i<=n;i++){ 
          for(j=1;j<=n;j++)printf("%c",a[i][j]); 
                printf("\n"); 
      } 
 
  } 
 
  else printf("Input error!\n"); 
  return 0;   
}  
#include <stdio.h>   
int main(){  
	  int n,j,i,k;//n是一个奇数 
	  char x;
	  scanf("%d %c",&n,&x);
	  if(n%2!=0&&((64<x&&x<91)||(96<x&&x<123))){
	  	 if(96<x&&x<123)x-=32;
	  	 if(n==1)printf("%c\n",x);
		 else{
	 	   for(i=1;i<=n;i++){
	 	   	printf("%c",65+(x-1-65+i)%26);
			}
			printf("\n");
			for(i=2;i<=n-1;i++){
				printf("%c",65+(x-1-65+i)%26);
				for(j=1;j<=(n-3)/2;j++)printf(" ");
				printf("%c",65+(x-1-65+i+(n-1)/2)%26);
				for(j=1;j<=(n-3)/2;j++)printf(" ");
				printf("%c\n",65+(x-1-65+i+n-1)%26);
			}
			for(i=1;i<=n;i++){
	 	   	printf("%c",65+(x+n-1-1-65+i)%26);
			}
			printf("\n");
	  }

  }

  else printf("Input error!\n");
  return 0;  
}  

本题可谓真正的一波三折,题目没有描述清楚,第一版本是奇数列有字母,问题:手抖把i敲成j等等多想几秒就能避免的问题时有发生,很不应该;

发现不过,第二版本是数组版本的中间列有字母,有一个没过,不知为何,可能是数组越界;

第三版本是最基础的循环,一遍过,很快就写完了,也没出什么错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值