C语言 在屏幕上输出菱形图案

在屏幕上输出以下图案:

*

***

*****

*******

*********

***********

*************

***********

*********

*******

*****

***

*

观察每行的变化规律,找到算法。

代码如下:

#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=0;i<7;i++)/*i为行,先输出前7行*/
	{
		for(j=0;j<6-i;j++)/*输出*前空格*/
		{
			printf(" ");
		}
		for(k=6-i;k<i+7;k++)/*输出每行的*(观察每行的变化规律)*/
		{
			printf("*");
		}
		printf("\n");
	}
	for(i=7;i<13;i++)/*输出后6行*/
	{
		for(j=0;j<i-6;j++)
		{
			printf(" ");
		}
		for(k=i-7;k<18-i;k++)
		{
			printf("*");

		}
		printf("\n");
	}

	return 0;
}

此法不能动态输出菱形图像,只局限与此图像,进行改进后代码如下:

#include<stdio.h>
int main()
{
	int line,i,j,k;
	scanf("%d",&line);
	for(i=0;i<line;i++)
	{
		for(j=0;j<line-i-1;j++)
		{
			printf(" ");
		}
		for(k=0;k<2*i+1;k++)
		{
			printf("*");

		}
		printf("\n");
	}
	for(i=line;i<2*line;i++)
	{
		for(j=0;j<i+1-line;j++)
		{
			printf(" ");
		}
		for(k=0;k<2*line-2*(i-(line-1))-1;k++)
		{
			printf("*");

		}
		printf("\n");
	}

	return 0;
}
时间: 2024-12-26 14:49:47

C语言 在屏幕上输出菱形图案的相关文章

在屏幕上输出以下图案

   图案如图所示 代码如下: #include<stdio.h>int main(){ int i,j,k; for(i=0;i<=6;i++) { for(j=0;j<=5-i;j++)   printf(" ");   for(k=0;k<=2*i;k++)          printf("*");   printf("\n"); } for(i=0;i<=5;i++)    {   for(j=0;j

在屏幕上输出以下图案:* *** ***** ******* ********* ****

代码如下 int main(){int i, j;for (i = 1; i <= 22; i += 2){if (i <= 11){for (j = 1; j <= i; j++)printf("");}printf("\n");if (i >= 11){for (j = i; j < 22; j++)printf("");}printf("\n");}system("pause&qu

输出菱形图案,C语言实现

★C语言输出菱形图案 #include<stdio.h>  void a(int i) { int j, k; for (j = 0; j <= 3 - i; j++) printf(" ");       //输出空格 for (k = 0; k<2 * i + 1; k++) printf("*");      //输出* printf("\n"); } int  main() { int i; for (i = 0;

8.求出100~230之间所有素数之和,先在屏幕上输出,再求和

#include <iostream>#include <cmath>//可以使用一些内置函数using namespace std;int isprime(int x);int main(){    int m,n;    for(m=101;m<230;m++)    {       if(isprime(m))            cout<<m<<endl;    }    for(m=101;m<230;m++)    {     

C语言实现在屏幕上输出杨辉三角

★在屏幕上打印杨辉三角 #include<stdio.h> int main() { int i = 0, j = 0, num = 0,k = 0; printf("请输入要输出的杨辉三角的行数:"); scanf("%d", &num); for (i = 1; i <= num; i++) { k = 1;         //每行须以1开头,所以将K定义在第二层循环之外 for (j = 1; j <= i; j++) { p

根据输入的行数及列数在屏幕输出菱形图案

/*程序运行结果:        1234567  1          #                2        ###  3      #####  4    #######  5      #####  6        ###                         7          #  */ #include <stdio.h> #include <stdlib.h> void diamond(int, int, char); int main(v

在屏幕上输出图案:*与空格拼出的菱形

#include<stdio.h> int main() {  int i,j;  for(i=1;i<=7;i++)  {   for(j=1;j<=7-i;j++)   {    printf(" ");   }   for(j=1;j<=(2*i-1);j++)   {    printf("*");   }   printf("\n");  }  for(i=1;i<=6;i++)  {   for(j

利用对称数列输出菱形图案,呵呵

今天在回顾JavaSE时,又见到了曾经练习的小例子,用[*]输出一个菱形.如图 * *** ***** *** * 图1 按照自己以前的逻辑肯定会选择一半一半的输出,如先输出上面一个锥形,再输出下面一个锥形.如果要输出一个矩阵的数据的话,如图2,还会选择先输出[@],再输出[*],再输出[@]. 这里为方便显示,把空格替换成了[@]. @@@*@@@ @@***@@ @*****@ ******* @*****@ @@***@@ @@@*@@@ 图2代码如下: 1 public static v

mysql如何把在屏幕上输出的结果输出到一个文件上?

1.如果MYSQL服务器就是你要导出文件的机器,那么可以直接用 select ...into outfile 语句. 例: select * from rank into outfile "/home/a.txt" 2.如果MYSQL服务器是单独的机器,我们是在一个client上进行操作,我们要把数据结果导入到client机器上.可以使用mysql -e语句. 例: mysql -uroot -proot -P3310 -h10.1.2.3 dbname -e "select