标题:题目:打印出如下图案(菱形),这样的算法可以吗?
只看楼主
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
 问题点数:0 回复次数:12 
题目:打印出如下图案(菱形),这样的算法可以吗?
#include "stdio.h"
#include "conio.h"
main()
{
int i,j,k;
for(i=0;i<4;i++)
{
for(j=3;j>i;j--)
{
printf(" ");
}
for(k=0;k<i*2+1;k++)
printf("*");
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<i+1;j++)
{
printf(" ");
}
for(k=0;k<5-2*i;k++)
printf("*");
printf("\n");
}
getch();
}

搜索更多相关主题的帖子: 菱形 图案 算法 题目 打印 
2007-09-01 17:34
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
得分:0 
偶也来玩一下。。。
#include <stdio.h> //4行版本
#define p(x) putchar(x)
int main(void)//实心菱形版本
{
for(int n=(scanf("%d",&n),n/2),t=0,d=1;t>=0;t+=(t-n)?d:d=-1)
for(int a=0,b=1;a>=0||(p(10)&0);a+=(a-n)?b:b=-1)
(a>=n-t)?p(42):p(32);
return 0;
}
输入宽度,然后就会输出对应的菱形(请不要用TC编译)



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-01 17:44
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
........雨中飞燕,高手来的!
2007-09-01 18:06
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 

雨中飞燕,好象也不能在WIN-TC下编译啊...会出错的!

2007-09-01 18:09
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
得分:0 
纯粹玩玩。。。切勿模仿。。。



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-01 18:30
chen7806
Rank: 1
等 级:新手上路
威 望:2
帖 子:160
专家分:0
注 册:2007-8-5
得分:0 
n>=3正确;

n<3不正确;
2007-09-01 18:42
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
哪里?
chen7806你是说我的程序有问题吗?
2007-09-01 18:53
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
#include"stdio.h"
#include"math.h"
main()
{
int i,j;
for(i=-3;i<=3;i++)
for(j=-3,puts("");j<=3;j++)
abs(i)+abs(j)==3?printf("*"):printf(" ");
}

羊肉串 葡萄干 哈密瓜!!
2007-09-01 19:09
cyhbp
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-8-27
得分:0 
#include<stdio.h>
void main()
{
int i,j,k,l;
printf("enter max line:"); /*输入最大行数*/
scanf("%d",&j);
for (i=-j/2;i<=j/2;i++)
{ if (i<0) l=-i;
else l=i;
for (k=0;k<l;k++)
printf(" "); /*输出每一行的空格*/
if (i>0) l=-i;
else l=i;
for (k=0;k<(l+j/2)*2+1;k++)
printf("*"); /*输出每一行的星号*/
printf("\n"); /*输出第一行的回车*/
}
getch();
}

输入行数,输出相应图形。

[此贴子已经被作者于2007-9-1 21:08:05编辑过]


2007-09-01 20:47
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
/*只需要一重循环的代码*/
#include <stdio.h>
int main(void){
char star[30]="****************************\n",blank[30]=" ";
int i=1,k=3,flag=0;
do{
printf("%s%s",blank+29-i-k,star+28-i);
(flag==0 && i<7)?(i+=2,k-=3):(flag=1,i-=2,k+=3);
}while(i>0);
return 0;
}
/*把上面也改成四行版本,请用CPP编译器,勿在TC下编译!并且只需要一重循环!!!*/
#include <stdio.h>
int main(void)
{
char star[30]="****************************\n",blank[30]=" ";
for(int i=1,k=3,flag=0;i>0;(flag==0 && i<7)?(i+=2,k-=3):(flag=1,i-=2,k+=3))
printf("%s%s",blank+29-i-k,star+28-i);
return 0;
}

[此贴子已经被作者于2007-9-1 22:34:52编辑过]


偶学编程,也许本身就是一个错。。。
2007-09-01 22:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-167042-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033267 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved