函数里翻转后数组打印不出来
查看原帖
函数里翻转后数组打印不出来
1239657
xrpo0楼主2024/5/24 18:37
#include <stdio.h>

int convert1(char get[][10],char end[][10],int n){
	char put[10][10];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			put[j][n-i+1]=get[i][j];
		}
	}
	printf("\n");
	for(int i=0;i<n;i++){
		puts(get[i]);
	}
	printf("\n");
	for(int i=0;i<n;i++){
		puts(put[i]);
	}
	printf("\n");
	for(int i=0;i<n;i++){
		puts(end[i]);
	}
	return 0;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(put[i][j]!=end[i][j]){
				return 0;
			}
		}
	}
	return 1;
}

int convert2(char get[][10],char end[][10],int n){
	char put[10][10];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			put[n-i+1][n-j+1]=get[i][j];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(put[i][j]!=end[i][j]){
				return 0;
			}
		}
	}	
	return 1;
}

int convert3(char get[][10],char end[][10],int n){
	char put[10][10];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			put[n-j+1][i]=get[i][j];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(put[i][j]!=end[i][j]){
				return 0;
			}
		}
	}	
	return 1;
}

int convert4(char get[][10],char end[][10],int n){
	char put[10][10];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			put[i][n-j+1]=get[i][j];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(put[i][j]!=end[i][j]){
				return 0;
			}
		}
	}	
	return 1;
}

int convert5(char get[][10],char end[][10],int n){
	char put[10][10];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			put[i][n-j+1]=get[i][j];
		}
	}
	if(convert1(put,end,n)||convert3(put,end,n)||convert2(put,end,n)){
		return 1;
	}else{
		return 0;
	}
}

int convert6(char get[][10],char end[][10],int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(get[i][j]!=end[i][j]){
				return 0;
			}
		}
	}
	return 1;
}

int main(){
	int n;
	scanf("%d",&n);
	getchar();
	
	char in[10][10];
	char out[10][10];
	
	for(int i=0;i<n;i++){
		gets(in[i]);
	}
	
	for(int i=0;i<n;i++){
		gets(out[i]);
	}
	printf("\n");
	if(convert1(in,out,n)){
		printf("1");
		return 0;
	}
	
	/*if(convert2(in,out,n)){
		printf("2");
		return 0;
	}

	if(convert3(in,out,n)){
		printf("3");
		return 0;
	}
	
	if(convert4(in,out,n)){
		printf("4");
		return 0;
	}
	
	if(convert5(in,out,n)){
		printf("5");
		return 0;
	}
	
	if(convert6(in,out,n)){
		printf("6");
		return 0;
	}
	printf("7");*/
	return 0;
}

我这为什么样例也过不了,一直是七。 为什么传进函数的初始和结束数组都没有问题,这个反转后的数组打印出来就有问题,调试发现这个反转后这个put数组是一下这些东西 这个put数组也打印不出来,打印全是空白的也不知道是空格是null。 put数组:{"\b\000@-@\000\000\000\001", "\000\000@--\000\000\000\000", "\000\000--@\256\306-\375\177", "\000\000\001\000\000\000\375\177\000", "0\212\313-\375\177\000\000\001", "\000\000\000\000\000\000W\375b", "\000\000\000\000\n\000\000\000\000", "\000\000\335\024\307-\375\177\000", "\n\000\000\000\000\000\000\000\060\212", "\313-\375\177\000\000\060\212\313-"}

2024/5/24 18:37
加载中...