69,369
社区成员
发帖
与我相关
我的任务
分享
//等级图片
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char str1[100][100]= {"\0"}, str2[100][100]= {"\0"};
int i = 0, j = 0, k = 1, p = 0, q = 0, r = 0, s = 0, n, m, N = 0;
for(i=0; i<=98; i++)//全变为空格
for(j=0; j<=98; j++)
{
str2[i][j] = ' ';
}
printf("Please input the size and the grade:");
scanf("%d %d", &n, &m);
printf("The character image of the initial is:\n");
fflush(stdin);
for(i=0; i<=n-1; i++)//获取初始图片
gets(str1[i]);
N = n;
for(k = 2; k<=m; k++)
{
for(i=0; i<=N-1; i++)
{
for(j=0; j<=N-1; j++)
{
if(str1[i][j] != ' ')//有非空格字符
{
r = 0;
for(p =i*n; p<=i*n+n-1; p++)
{
s = 0;
for(q=j*n; q<=j*n+n-1; q++)
{
str2[p][q] = str1[r][s];
s++;
}
r++;
}
}
else if(str1[i][j] == '\0')
break;
}
}
N = N * n;
for(i=0; i<=N-1; i++)
strcpy(str1[i], str2[i]);
}
printf("The result is:\n");
for(i=0; i<=N-1; i++)
{
for(j=0; j<=N-1; j++)
{
printf("%c", str1[i][j]);
}
printf("\n");
}
return 0;
}
//输入1
//输出
//* *
// *
//* *
//输入2
//输出
//* * * *
// * *
//* * * *
// * *
// *
// * *
//* * * *
// * *
//* * * *
//输入3
//输出
//* * * * * * * *
// * * * *
//* * * * * * * *
// * * * *
// * *
// * * * *
//* * * * * * * *
// * * * *
//* * * * * * * *
// * * * *
// * *
// * * * *
// * *
// *
// * *
// * * * *
// * *
// * * * *
//* * * * * * * *
// * * * *
//* * * * * * * *
// * * * *
// * *
// * * * *
//* * * * * * * *
// * * * *
//* * * * * * * *
//最大输入8
#include <stdio.h>
char m[6561][6561];//==3^8
void fractalx(int cy,int cx,int L) {
int N,i;
if (1==L) {
m[cy ][cx ]='*';
m[cy-1][cx-1]='*';
m[cy-1][cx+1]='*';
m[cy+1][cx+1]='*';
m[cy+1][cx-1]='*';
} else {
N=1;for (i=0;i<L-1;i++) N=N*3;
fractalx(cy ,cx ,L-1);
fractalx(cy-N,cx-N,L-1);
fractalx(cy-N,cx+N,L-1);
fractalx(cy+N,cx+N,L-1);
fractalx(cy+N,cx-N,L-1);
}
}
int main() {
int L,N,i,y,x;
while (1) {
while (1) {
printf("\nInput 1..8,0 for Exit:");
fflush(stdout);
if (1==scanf("%d",&L)) {
if (0<=L && L<=8) break;
} else rewind(stdin);
}
if (0==L) break;
N=1;for (i=0;i<L;i++) N=N*3;
for (y=3280-(N-1)/2;y<=3280+(N-1)/2;y++) {
for (x=3280-(N-1)/2;x<=3280+(N-1)/2;x++) {
m[y][x]=' ';
}
}
fractalx(3280,3280,L);
for (y=3280-(N-1)/2;y<=3280+(N-1)/2;y++) {
for (x=3280-(N-1)/2;x<=3280+(N-1)/2;x++) {
printf("%c",m[y][x]);
}
printf("\n");
}
}
return 0;
}