注册 登录
编程论坛 C++教室

编写的一个小程序,有没有更简单的方法

编程2011 发布于 2011-03-15 22:11, 928 次点击
    输出这样一个图形
      *********
      *       *
      *       *
      *       *
      *       *
      *       *
      *       *
      *       *
      *********
               
程序代码:
#include<iostream>
using namespace std;

char A[]="*********";

int main ()
{
    for (int i=0; i<=9; i++)
    {
        cout<<A[i];
    }cout<<endl;
    for (int j=0; j<=7; j++)
    {
        cout<<A[j]<<"       "<<A[j]<<endl;
    }
    for (int f=0; f<=8; f++)
    {
        cout<<A[f];
    }
    return 0;
}
    求不用for的程序.......
12 回复
#2
pangding2011-03-15 22:58
用数个printf就行。

像这样:
程序代码:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    puts("*********");
    puts("*       *");
    puts("*       *");
    puts("*       *");
    puts("*       *");
    puts("*       *");
    puts("*       *");
    puts("*       *");
    puts("*********");

    return 0;
}

你要乐意,也可以改成 cout 的版本。


[ 本帖最后由 pangding 于 2011-3-15 23:04 编辑 ]
#3
编程20112011-03-15 23:34
回复 2楼 pangding
首先要谢谢你,但是你不觉得这样很繁琐嘛,单调嘛
#4
duskfateair2011-03-16 08:02
但是直接输出,是最简单,明了的方法啊!
#5
makebest2011-03-16 08:35
楼主你该满足了吧.呵呵
#6
pangding2011-03-16 10:17
回复 3楼 编程2011
好的代码不怕繁锁单调。可读,简明,清晰;便于优化,调试等等特性才是鉴别代码优劣的标准。

我的代码从以上很多方面讲都可以达到要求。除了不便于更改,但其实这个很有影响。
如果可以的话,避免硬编码是很有意义的。但这就要用到循环了,但楼主要求不用,所以要有取舍。
#7
编程20112011-03-16 12:06
回复 6楼 pangding
明白,现在的编程已不强调艺术性,而是可行性和明了些。。。。。
#8
yfleee2011-03-16 12:56
程序代码:
#include<iostream>
using namespace std;
int main (){
cout<<"*********"<<endl;
cout<<"*       *"<<endl;
cout<<"*       *"<<endl;
 cout<<"*       *"<<endl;
 cout<<"*       *"<<endl;
 cout<<"*********"<<endl;
}最简单的了
#9
bccn2502011-03-16 15:33
呵呵,是不是都乱来了,只要能输出这图形就行了?
#include<iostream>
using namespace std;
int main ()
{
    cout<<"*********\n*       *\n*       *\n*       *\n*       *\n*       *\n*       *\n*       *\n*       *\n*********";
}
#10
bccn2502011-03-16 16:24
再写个不乱来的
程序代码:
#include<iostream>
using namespace std;

int a(int r,int c)
{
    if(r==0||c==0||r==8||c==8) cout<<'*';
    else cout<<' ';
    c++;
    if(c==9) {cout<<endl; r++; c=0;}
    if(r==9) return;
    a(r,c);
}


int main()
{
    a(0,0);
    return 0;
}

不过好像不比楼主的简单,代码比楼主还多好像
#11
pangding2011-03-16 17:29
以下是引用编程2011在2011-3-16 12:06:17的发言:

明白,现在的编程已不强调艺术性,而是可行性和明了些。。。。。

何谓艺术?楼主现在可能还不是很能体会。

程序员在追求完美的道路上永远不会放一滴水。怎样的代码才最美?明白的人很容易看出来。
#12
lphear2011-03-19 12:17
10楼递归...实现本质和FOR没什么区别了...
LZ的意思是不用FOR还是不用任何循环语句啊...
#13
jaybill12152011-03-21 23:22
回复 2楼 pangding
哈哈哈 很逗趣的回复...
1