码迷,mamicode.com
首页 > 其他好文 > 详细

pta自测一

时间:2015-10-06 09:13:45      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>

int levels( int n , int * val);

void print( int level_num ,char ch);

int main(void){

  int val = 0;
  int n = 0;
  int level = 0;
  int * pval = &val;
  char ch = ‘\0‘;
  scanf("%d %c",&n,&ch);
  level = levels(n,pval);
  print(level,ch);
  printf("%d\n",val);

  
  


  return 0;
}

int levels( int n , int * val ){
  int level_num = 1;
  int test = ( level_num * level_num ) * 2 - 1;
  //  printf("test = %d\n",test);
  
  
  while(  test <= n  ){
    level_num++;
    test = ( level_num * level_num ) * 2 - 1;
    //test = level_num * level_num - 1;
    //    printf("test = %d\n",test);
  }
  
  level_num--;
  
  *val = n - (( level_num * level_num ) * 2 - 1);
  //  printf("level_num = %d\n",level_num);
  
  
  //  printf("test = %d\n",test);
  level_num = level_num * 2 - 1;
  

  return level_num;
}

void print( int level_num , char ch){
  //输出上半部分
  //  char ch = ‘*‘;
  int space_num = 0;
  int i = 1;
  int ch_num = 0;
  int level  = ( level_num + 1 ) / 2;
  for( i = 1; i <= level; i++ ){
    //输出空格
    space_num = i - 1;
    while( space_num > 0 ){
      putchar(‘ ‘);
      space_num--;
    }

    //输出符号
    ch_num = level_num - ( i - 1 ) * 2;
    while( ch_num > 0 ){
      putchar(ch);
      ch_num--;
    }

    putchar(‘\n‘);
  }
  //  puts("-------");

  //输出下半部分
  level = ( level_num - 1 ) / 2;
  ch_num = 3;
  i = 0;
  for( i = 0; i < level; i++ ){
    //输出空格
    space_num = level - 1 - i;
    while( space_num > 0 ){
      putchar(‘ ‘);
      space_num--;
    }

    //输出符号
    int j = 1;
    for( j = 1; j <= ch_num; j++ ){
      putchar(ch);
    }
  
    ch_num += 2;
  
    putchar(‘\n‘);
  }




}


pta自测一

标签:

原文地址:http://my.oschina.net/iamhere/blog/513675

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!