PS:竟然一次AC....惊喜...注意每个实例后跟一个空行..
学到一个快速清空数组的用法...memst函数. memst(void *s,char a,sizeof n) 把 s里面的前n个变成a
顺便在后面贴上一个大神的ac代码
代码:
#include "stdio.h"
void darm(int n,int m);
void spa(int n);
int main(){
int n,m;
while(~scanf("%d%d",&n,&m)){
darm(n,m);
puts("");
}
return 0;
}
void darm(int n,int m){
int i;
printf("+");
for(i=0;i<n;i++) printf("-");
printf("+\n");
for(i=0;i<m;i++){
printf("|");
spa(n);
printf("|\n");
}
printf("+");
for(i=0;i<n;i++) printf("-");
printf("+\n");
}
void spa(int n){
int i;
for(i=0;i<n;i++)
printf(" ");
}
大神代码:
# include <stdio.h>
# include <string.h>
# define REP(a,b) for(a = 0 ; a < b ; a++)
char gp[100][100] ;
int main ()
{
int i, n, m ;
while (~scanf ("%d%d", &n, &m))
{
memset(gp, ' ', sizeof(gp)) ;
REP(i,m+2) gp[i][0] = gp[i][n+1] = '|', gp[i][n+2] = '\0' ;
REP(i,n+2) gp[0][i] = gp[m+1][i] = '-' ;
gp[0][0] = gp[0][n+1] = gp[m+1][0] = gp[m+1][n+1] = '+' ;
REP(i,m+2) puts (gp[i]) ;
puts ("") ;
}
return 0 ;
}