重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1
我们提供的服务有:成都网站建设、网站制作、微信公众号开发、网站优化、网站认证、常州ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的常州网站制作公司
运用C语言程序输出一个菱形:
源代码为:
#includestdio.h
void main()
{
int n=6;
int i,a,b;
//前4行.上半部分
for( i=1;i=n;i++)//控制行数
{
for( a=n-1;a=i;a--)//打印空格
{
printf(" ");
}
for( b=1;b=2*i-1;b++)//打印*
{
printf("*");
}
printf("\n");
}
//后3行,下半部分
for( i=n-1;i=1;i--)
{
for( a=i;a=n-1;a++)
{
printf(" ");
}
for( b=1;b=2*i-1;b++)
{
printf("*");
}
printf("\n");
}
}
2
这是菱形上半部分的代码:
//菱形的上半部分
for( i=1;i=n;i++)//控制行数
{
for( a=n-1;a=i;a--)//输出空格
{
printf(" ");
}
for( b=1;b=2*i-1;b++)//输出*
{
printf("*");
}
printf("\n");
}
3
这是菱形下半部分的代码:
//菱形 的下半部分
for( i=n-1;i=1;i--)
{
for( a=i;a=n-1;a++)
{
printf(" ");
}
for( b=1;b=2*i-1;b++)
{
printf("*");
}
printf("\n");
}
4
此程序中值得注意的地方
这个程序的源代码,主要是运用了for语句的循环嵌套。for语句的一般形式为:
for(循环变量赋初值;循环条件;循环变量增值) {语句}
当一或二条件知识一个分号代表:此条件一直为真,一直成立!
5
存C语言的格式:
程序文件有:源程序文件(后缀为 .c)、目标文件( 后缀为 .obj)、可执行文件(后缀为 .exe),当后缀名错误时,则程序不能执行。平常我们 写的代码就是源程序文件,所以保存时用 .c ,程序会自动 生成目标文件 .obj ,再到执行文件 .exe .然后执行得到结果。
6
对C语言一定要重视,因为它会在你未来的工作中,帮你许多的忙。
上面画一个三角,下面画一个反三角。就是菱形了
这里的高度指的是三角行的高度
#include "stdio.h"
void main()
{
int h;
printf("输入高度-》 ");
scanf("%d",h);
for(int i=1;i=h;i++)
{
for(int a=1;a=(h-i);a++)
{
printf(" ");
}
for(int b=1;b=(i*2-1);b++)
{
printf("*");
}
printf("\n");
}
for(int j=h-1;j=1;j--)
{
for(int a=1;a=(h-j);a++)
{
printf(" ");
}
for(int b=1;b=(j*2-1);b++)
{
printf("*");
}
printf("\n");
}
}
这道题是要可以多次输出的,所以就用循环来控制输入输出了。至于菱形部分,可以分为增加字符输出和减少字符输出来循环输出字符和空格两部分,上一部分:字符行数就是你输入的数据n,可用for语句定义一个变量来控制输出,再看字符和空格的输出,先输出空格个数j(j=0到((n-1)-i)《包括(n-1)-i》),再输出字符个数k(k=0到2*i)《即共2*i+1个》;
然后是下一部分:也用一for语句控制输出,空格个数从(0到i),字符个数从(0到n-2*i)。
执行多次就行了。
下面是输出边长为4的*号的菱形,仅供参考(你只要根据其修改一下就行了):
main()
{
int i,j,k;
for(i=0;i=3;i++)
{
for(j=0;j=2-i;j++)
printf(" ");
for(k=0;k=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i=2;i++)
{
for(j=0;j=i;j++)
printf(" ");
for(k=0;k=4-2*i;k++)
printf("*");
printf("\n");
}
}
#include stdio.h
#include math.h
int main()
{int n,i,j;
scanf("%d",n);
printf("%*d\n",n,n);
for(i=2-n;in-1;i++)
{if(i)printf("%*c",abs(i),' ');
for(j=n;j1+abs(i);j--)
printf("%d",j);
for(;j=n;j++)
printf("%d",j);
printf("\n");
}
if(n1)printf("%*d\n",n,n);
return 0;
}
工具/材料
ubuntu+vim+gcc
01
首先,输入预处理指令#include stdio.h与函数原型void print(int n)。
其中,n表示行数。
02
然后,对输入的n进行提前判断,若小于0或为偶数,则结束打印。
03
接着对上半个菱形进行输出(包括最长的行)。使用两层循环进行输出,分别控制行数与行内的位置。
04
接着对下半个菱形进行输出(包括最长的行)。也使用两层循环进行输出,分别控制行数与行内的位置。
05
对n=5与n=7进行输出测试,代码如下。
06
编译运行后的结果如下
07
以下是所有的代码:
#include stdio.h
void print(int n)
{
//判断n是否符合正奇数的要求
if(n 0 || n % 2 == 0)
//不符合则直接退出
return;
//对上半个菱形输出
int i = 1,j = 1;
//i控制行数
for(i = 1; i = (n + 1) / 2; i++)
{
//j控制每一行的位置
//输出空格
for(j = 1; j = (n+1)/2 - i; j++)
printf(" ");
//输出*
for(j = 1; j = 2 * i - 1; j++)
printf("*");
//输出换行
printf("\n");
}
//输出下一半
//i控制行数
for(i = 1; i = n/2; i++)
{
//j控制每一行的位置
//输出空格
for(j = 1; j = i; j++)
printf(" ");
//输出*
for(j = 1; j = n -2 * i; j++)
printf("*");
//输出换行
printf("\n");
}
}
//测试函数,测试n=5和n=7
int main()
{
printf("5\n");
print(5);
printf("7\n");
print(7);
return 0;
}