回复 15楼 xzlxzlxzl
											刚在那个网站试了一下,非要加个floor编译才会通过
还有就是要排除n=1,m=0的情况
改正如下:
#include <stdio.h>
#include <stdlib.h>
 #include <math.h>
 int main( void)
  {
      unsigned n,m;
      char c;
      scanf( "%u %c", &n, &c );
      m=sqrt(n/2.0+0.5); //等于等差数列的项数
     for(int i=m-1;abs(i)<m;i--)
      {
     printf("%*c",m-abs(i),c);
  //输出第一个字符及前面的空格
    for(int j=2;j<=2*abs(i)+1;j++) //输出后面的字符
         printf("%c",c);
          printf("\n");
      }
      printf("%d\n",n-2*m*m+1);
      return 0;
  }
多次测试后发现可以不要floor,但一定要包含math.h stdlib.h两个头文件。
还真有点奇怪abs居然需要两个头文件的支持。
[此贴子已经被作者于2016-10-12 11:14编辑过]