如何用c语言 打出这么个图形 好像要用info
发布网友
发布时间:2022-05-27 18:27
我来回答
共2个回答
热心网友
时间:2023-11-15 15:19
这题目我做过,代码如下,你运行一下试试:
#include <stdio.h>
char info( void )
{
char ch;
printf("Please enter a letter (A-Z): " );
ch=getchar();
while( getchar()!='\n' );
return ch;
}
void shape( char ch1, char ch2 )
{
const int N=7;
int i,j;
int mid=N/2;
printf("Diamond shape of the letters:\n");
for( i=0;i<N/2;i++ )
{
for( j=0;j<mid;j++ )
{
printf("%c", ch1 );
}
printf("%c", ch2 );
for( j=0;j<2*i-1;j++ )
printf(" ");
if ( i>0 )
printf("%c", ch2 );
for( j=0;j<mid;j++ )
{
printf("%c", ch1 );
}
printf("\n");
mid--;
}
for( i=N/2;i>=0;i-- )
{
for( j=0;j<mid;j++ )
{
printf("%c", ch1 );
}
printf("%c", ch2 );
for( j=0;j<2*i-1;j++ )
printf(" ");
if ( i>0 )
printf("%c", ch2 );
for( j=0;j<mid;j++ )
{
printf("%c", ch1 );
}
printf("\n");
mid++;
}
}
int main()
{
char a,b;
a=info();
b=info();
shape( a, b );
return 0;
}
追问厉害厉害
追答能用就好
热心网友
时间:2023-11-15 15:19
代码是刚写的,没用过info函数,应该不会有重复,而且测试过了。
#include "stdio.h"
int main()
{
char a[7][7] ;
for (int i=0;i<7;i++)
{
for (int j=0;j<7;j++)
{
a[i][j]='B';
}
}
for (int i=0;i<=3;i++)
{
a[i][3-i] = 'A';
a[i][3+i] = 'A';
a[3+i][i]= 'A';
a[3+i][6-i]= 'A';
}
for (int i=0;i<=3;i++)
{
int k =2*i-1;
if (k>0)
{
int m = i-1;
for (int n =-m;n<=m;n++ )
{
a[i][3+n] = ' ';
}
}
}
for (int i=3;i<7;i++)
{
int k =2*(6-i)-1;
if (k>0)
{
int m =k-(6-i);
for (int n =-m;n<=m;n++ )
{
a[i][3+n] = ' ';
}
}
}
for (int i=0;i<7;i++)
{
for (int j=0;j<7;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
return 0;
}