工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1960|回复: 4

关于C语言的请教

[复制链接]
发表于 2010-4-15 14:29 | 显示全部楼层 |阅读模式
本帖最后由 iptton 于 2010-4-15 17:12 编辑

我是刚开始学C语言的~~这里是有一道题是要求输出
      *
    ***
  *****
*******
  *****
    ***
      *
这个图案~~下面是我自己写的一个代码~~可能不严谨兼垃圾吧~~大家别急着扔砖头~~给我说说哪里出错了~~或者提供我一个更好的代码~~谢谢大家

  1. #include<stdio.h>
  2. #include<math.h>
  3. void main()
  4. {
  5.     int line,seat_1,seat_2,k,j;
  6.     for(line=1;line<=7;line++)
  7.     {
  8.         k=abs((line-4)*(line-4));
  9.         j=7-2*k;
  10.         for(seat_1=1;seat_1<=k;seat_1++) printf("  ");
  11.         for(seat_2=1;seat_2<=j;seat_1++) printf("*");
  12.         printf("\n");
  13.     }
  14. }
复制代码
发表于 2010-4-15 17:11 | 显示全部楼层
算是计算题吧?计算下规律就可以算对了。。

  1. #include<stdio.h>
  2. #include<math.h>

  3. void printStart(int line);
  4. void main()
  5. {
  6.     printStart(7);
  7. }
  8. void printStart(int line){
  9.         int mid=line/2+1;
  10.         int numOfStar,numOfSpace;
  11.         for(int i=0;i<line;++i){
  12.                 if(i<mid){
  13.                         numOfSpace=mid-i-1;
  14.                         numOfStar=i*2+1;
  15.                 }else{
  16.                         numOfSpace=i-mid+1;
  17.                         numOfStar=(line-i)*2-1;
  18.                 }
  19.                 for(int j=0;j<numOfSpace;++j)printf(" ");
  20.                 for(int k=0;k<numOfStar;++k)printf("*");
  21.                 printf("\n");
  22.         }
  23. }
复制代码
回复

使用道具 举报

发表于 2010-4-15 17:16 | 显示全部楼层
本帖最后由 iptton 于 2010-4-17 07:51 编辑

刚好今天有空,计算一下...orz

  1. #include<stdio.h>
  2. #include<math.h>

  3. void printStar(int line);
  4. void main()
  5. {
  6.     printStart(7);
  7. }
  8. void printStar(int line){
  9.         int mid=line/2;
  10.         int numOfStar,numOfSpace;
  11.         for(int i=0;i<line;++i){
  12.                 numOfSpace=abs(mid-i);
  13.                 numOfStar=line-abs((mid-i)*2);
  14.                 for(int j=0;j<numOfSpace;++j)printf(" ");
  15.                 for(int k=0;k<numOfStar;++k)printf("*");
  16.                 printf("\n");
  17.         }
  18. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2010-4-15 19:08 | 显示全部楼层
谢谢楼上的~~我先研究研究``
回复

使用道具 举报

发表于 2010-12-28 17:08 | 显示全部楼层
哇。看起来就很复杂。。我才开始学习C语言。。好好请教最近听说有个免费的讲座时介绍Linux知识的,他们邀请了著名的Linux讲师分析嵌入式知识。可以去听下哦。。是免费的在广州市越秀区东风西路140号东方金融大厦610。。大家好好加油啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-4-29 12:48

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表