永发信息网

C语言简化,初学者,帮我简化下。

答案:2  悬赏:50  手机版
解决时间 2021-03-07 22:52
C语言简化,初学者,帮我简化下。
最佳答案
楼主,来点刺激的:
打印菱形*号的程序可以写成一个独立的函数,输入行数(奇数行)就可以打印对应的效果图。不固定死的,很灵活:

效果:
*
***
*****
*******
*****
***
*
*
***
*****
*******
*********
*******
*****
***
*
*
***
*****
*******
*********
***********
*********
*******
*****
***
*

正确代码:
#include "conio.h"
#include

void printJZT(int n)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=(i<=(n+1)/2?(n+1)/2-i:i-(n+1)/2);j++)
{
printf(" ");
}
for(j=1;j<=2*(i<=(n+1)/2?i:n+1-i)-1;j++)
{
printf("*");
}
printf("\n");
}
}

main()
{
printJZT(7);
printJZT(9);
printJZT(11);
getch();
}

思路:
外层循环控制打印几行
里层第一个for 控制空格先递减至0,后递增
第二个for控制*号先递增后递减

楼主好运!
全部回答
1.
//用数组实现(用空间换时间)
//适用于固定的 较小的
#include "stdio.h"
void main()
{
char *s[10]={" *"," ***"," *****"," *******","*********"," *******"," *****"," ***"," *"};
int i;
for(i=0;i<9;i++)
{
printf("%s\n",s[i]);
}

}
2.
//从你的代码简化
#include
void main()
{
int i,a,b;
char c;
//第一步简化将连个外层循环和成一个
int step=1;
for(i=0;i>=0;i+=step)
{
//for(a=4;a>=i;a--)
// printf(" ");
//for(b=0;b<=0+i*2;b++)
// printf("*");
//第二步将俩个类循和成一个
c=' ';
for(a=0;a{
if(a==5-i)c='*';
printf("%c",c);
}
printf("\n");
if(i==4)step=-1;
}
// for(i=0;i<=4;i++)
// {
//for(a=0;a<=i+1;a++)
// printf(" ");
//for(b=0;b<=6-i*2;b++)
// printf("*");
//printf("\n");
// }
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在学校怎样才能使女生喜欢你
自考的本科可以申请美国一流大学吗?如果自考
金钟国歌曲.宋智孝舞蹈大放送是哪一期
电力作业中,什么叫顺流接法。搭火。
虚不受补是什么症状
带有反犬旁的一对词语
turnover在NBA比赛中具体什么意思?
彩电高压包怎样制作发电
铁石心肠是何有
宏达科技电脑维修部地址在哪,我要去那里办事
增城市新塘镇凤凰城凤雅苑36街1号译英文
科大和香港几所大学的物理哪个好
暴风科技从退市到a股上市花了多少时间
婚纱店上班工资这么样
下列应对挫折的方法中正确的有 ①冷静对待???
推荐资讯
商城APP开发功能有哪些
达州市满意医药连锁有限责任公司满意大药房达
我现在在盐城领航上班了,那我原先在外地交的
有两个愤字打一成语
广州市烟草专卖局荔湾稽查大队怎么去啊,有知
掌握古印度祭祀大权的是
鲁迅弃医从文的原因
辽宁营口到山东临沂的车费大概要多少钱?
家用电表与1p dz47 c20开关如何接线
日语·か如果在词中、尾都发ga,在词首发ka这
中石油华北分公司电话多少
闲鱼卖东西怎么才能不被坑
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?