两次for循环就可以输出这个效果
#include <math.h>
int main()
{
int i,j,n;
printf("please enter a size:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("- ");
}
printf("\n");
for(i=0;i<n/2;i++){
for(j=0;j<i+1;j++){
printf("- ");
}
for(j=0;j<n-i*2-2;j++){
printf("%d ",i+1);
}
for(j=0;j<i+1;j++){
printf("- ");
}
printf("\n");
}
for(i=n/2-2;i>=0;i--){
for(j=0;j<i+1;j++){
printf("- ");
}
for(j=0;j<n-i*2-2;j++){
printf("%d ",i+1);
}
for(j=0;j<i+1;j++){
printf("- ");
}
printf("\n");
}
for(i=0;i<n;i++){
printf("- ");
}
}