popo2008 发表于 2010-11-13 12:44:05

显示菱形的代码--学习代码纪念贴

本帖最后由 popo2008 于 2010-11-16 12:38 编辑

一楼是C语言二楼是c++,逻辑是一样的~~c++可以反复输入   c语言本身制作了,结果超过三次就会不能用,不知道是不是系统的原因~~哈哈~~先把代码写下来/:018#include <stdio.h>
#include <math.h>
void ShowRectangle(int n)
{
      int i,j,m;
      m = n>>1;
      printf("这是PYG_POPO2008的作品\n");
      for (i = m;i >= -m;i--)
      {
                printf("    ");
                for (j = m;j>= -m;j--)
                {
                        if (i>0?(i == m-abs(j)):(i == -m+abs(j)))
                        {
                              printf("*");
                        }
                        else
                        {
                              printf(" ");
                        }
                }
                printf("\n");
      }
}
int main(int argc, char *argv[])
{
      char a;
      int n;
      do
      {
                printf("输入一个奇数:");
                scanf("%d",&n);
                if ( n%2 == 0)
                {
                        printf("你输入错误!如果继续请输入(y)");
                }
                else
                {
                        ShowRectangle(n);
                        printf("如果继续请输入(y)");
                }
                scanf("%s",&a);
      } while (a == 'y' || a == 'Y');

      return 0;
}VC6编译成功   Tc也编译成功但是TC 不支持中文所以下面图片有乱码;

popo2008 发表于 2010-11-13 12:44:39

本帖最后由 popo2008 于 2010-11-16 12:36 编辑

但是有些BUG没解决


这是简单的C++版本#include <iostream>
#include <cmath>
#include <stdlib.h>
using namespace std;

void ShowRectangle(int n)
{
        int i,j,m;
        m = n>>1;
        for (i = m;i >= -m;i--)
        {
                printf("    ");
                for (j = m;j>= -m;j--)
                {
                        if (i>0?(i == m-abs(j)):(i == -m+abs(j)))
                        {
                                printf("*");
                        }
                        else
                        {
                                printf(" ");
                        }
                }
                printf("\n");
        }
}
int main(int argc, char *argv[])
{
        char a;
        int n,ntem;
        do
        {
                system("cls");
                     printf("这是PYG_POPO2008的作品\n");
                //printf("输入菱形的层数(奇数):");
                cout << "输入菱形的周长:";
                cin >> ntem;
                n =ntem /4 +1;
                if ( n%2 == 0)
                {
                        ShowRectangle(n);
                        cout << "如果继续请输入(y)";
                }
                else
                {
                        printf("你输入错误!如果继续请输入(y)");
                }               
                      cin >> a;
        } while (a == 'y' || a == 'Y');

        return 0;
}

jianshi 发表于 2010-11-15 11:59:07

学习了,楼主很厉害哦!

popo2008 发表于 2010-11-16 12:19:12

本帖最后由 popo2008 于 2010-11-16 12:38 编辑

9*9乘法表#include <stdio.h>
int main(int argc, char *argv[])
{
        printf("Study By PYG_POPO2008\n");
        for(int i = 1;i<=9 ; i++)
        {
                for(int j = 1; j <= i; j++)
                {
                        int h = j*i;
                        printf("%d*%d=%d ",j,i,h);
                }
                printf("\n");
        }
        getchar();
        return 0;
}

punisher_will 发表于 2010-11-16 21:51:41

让我想起大学时期老师让用C语言编写在屏幕上显示个菱形图案,我直接用几个printf打出* 排出了个菱形..没有条件判断,没有循环。老师说他对我很无语.

pcwindpyg 发表于 2018-1-25 11:56:23

i没有注释看不懂

昆仔 发表于 2018-12-15 10:55:33

学习了,找个还是挺不错得
页: [1]
查看完整版本: 显示菱形的代码--学习代码纪念贴