C语言简化,初学者,帮我简化下。
答案:2 悬赏:50 手机版
解决时间 2021-03-07 22:52
- 提问者网友:沦陷
- 2021-03-07 02:24
C语言简化,初学者,帮我简化下。
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-03-07 02:40
楼主,来点刺激的:
打印菱形*号的程序可以写成一个独立的函数,输入行数(奇数行)就可以打印对应的效果图。不固定死的,很灵活:
效果:
*
***
*****
*******
*****
***
*
*
***
*****
*******
*********
*******
*****
***
*
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
正确代码:
#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控制*号先递增后递减
楼主好运!
打印菱形*号的程序可以写成一个独立的函数,输入行数(奇数行)就可以打印对应的效果图。不固定死的,很灵活:
效果:
*
***
*****
*******
*****
***
*
*
***
*****
*******
*********
*******
*****
***
*
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
正确代码:
#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楼网友:山河有幸埋战骨
- 2021-03-07 04:07
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");
// }
}
//用数组实现(用空间换时间)
//适用于固定的 较小的
#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");
// }
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯