这道编程题如何用c语言解答? 5
代码资料:
#include "stdio.h"
int main(int argc,char *argv[]){
char t[100][2],i,j,k,n,m;
printf("please enter ch & n(char ch, int 0<n<41; '@' end)...\n");
for(n=0;n<100;n++){
if(scanf(" %c",t[n])!=1 || t[n][0]=='@')
break;
if(scanf("%d",t[n]+1)!=1 || t[n][1]<1 || t[n][1]>40){
printf("Input error, exit...\n");
return 0;
}
}
for(i=0;t[i][0]!='@';i++){
for(j=1;j<=t[i][1];j++){
for(k=0;k++<t[i][1]-j;putchar(' '));
for(m=j+j-1,k=0;k<m;k++)
putchar(k==0 || k==m-1 || j==t[i][1] ? t[i][0] : ' ');
putchar('\n');
}
putchar('\n');
}
return 0;
}
#define N n
#define KG (N-i)
#define XH i*2
void main() {
int i,j,k,n; char c,s[20];
while ( 1 ) {
scanf("%s",s); c=s[0]; if ( c=='@' ) break;
scanf("%d",&n);
for ( i=0;i<N;i++ ) {
for ( j=0;j<KG;j++ ) printf(" ");
printf("%c",c);
k=(i==N-1)?(c):(' ');
for ( j=1;j<XH;j++ ) printf("%c",k);
if ( XH>0 ) printf("%c",c);
printf("\n");
}
}
}