使用for输出图形(三角形+平行四边形+菱形+字符跑步+跑步动画爱心)。

前言(重大事件)

大家好我是内向,我今天晚上更完了就可能会好久才会继续更因为小编想了想还是沉淀一下技术,这样子才会带来更大的进步这也是我来这个社区的初衷变得更强。小编也希望读者再次看见小编的作品时能够感受到不一样的地方更加有吸引力丫更加通俗易懂。
即便小编我要暂时修养沉淀一下也不会水各位的,今天仍旧是思维的拓展好了我们直接看代码。请添加图片描述

简单版的for循环进行算数运算。

#include<stdio.h>
int main(){
	int i,sum=0;
	for(i=0;i<=100;i++)
	{
		sum=sum+i;
	}
	printf("%d",sum);
	return 0;
}

仅仅只有一个点需要注意:
我们为什么会把printf放在花括号外面呢也就是循环外面呢?
因为丫放在循环里面的话数字就会进行运算导致没有我们想要的输出效果。
而放在循环外面就是循环里面已经算好了再把值赋给我们的变量也就是sum。

九九乘法表 (算数运算的进阶)

#include<stdio.h>
int main(){
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
	    printf("%d*%d=%d\t",j,i,i*j);
        printf("\n");
	    }
	return 0;
}

以下是运行结果:
运行结果

那么在这里为什么所有输出都要在一个循环里面呢而不是跳出循环再得出结果。
其实啊这里的需求就是要把计算的过程给展示出来才能看见九九乘法表的本来面目撒。
以上两个代码唯一的区别就是:一个不需要过程一个需要过程
所以您懂了吗。

进阶版:请看下方。

输出一个三角形(1.0版本)

直接先看代码

#include<stdio.h>
#include<stdlib.h> 
int main(){
	int i,j,n;
	for(i=1;i<7;i++) 
	{
		for(j=1;j<=6-i;j++)//i-6的话都不成立如果仅仅是小于i的话就达不到我们要的效果 
		printf(" "); //每一次输出一个就空格一次 第一次就空格5次从第六个字节开始输出一个
		//第二次就空格4次到第五个开始输出
		//空格一个相当于乘以2倍 
		//精髓是这个空格。 
		for(n=1;n<=2*i-1;n++)
		printf("*");
		printf("\n"); 
	}
	return 0;
}

运行结果如图所示:
运行

疑问我们是如何做到输出三角形呢以及为啥我们要加空格以及为什么我们要在给i乘以两倍呢还要减一
解答是:我们先打印6个空格然后再依次减一最后通过for循环出结果乘以两倍。
为啥要减一呢?
因为三角形是偶数还是奇数肯定是奇数啊所以才减一。

平行四边形(2.0版本)

原理与上方不谋而合
第一步还是先打印空格我们还是先打印6个空格把
最后再输出

#include<stdio.h>
int main(){
	int i,j,z,t,a;
	printf("请输入一个数字作为行数:");
	scanf("%d",&z);
	printf("请输入一个数字作为列数:"); 
	scanf("%d",&a);
	for(i=1;i<=z;i++)
	{
		for(j=0;j<z-i;j++) 
		printf(" "); 
		for(t=0;t<a;t++) 
		printf("*");
		printf("\n");
	}
} 

运行结果如图所示:
在这里插入图片描述

我们这里为啥不使用2*i-1呢。
因为我们这个是平行四边形不需要去乘以两倍再减一
仅仅只需要:先打印空格然后直接输出就行了。

输出一个菱形(3.0版本)

#include<stdio.h>
int main() 
{
	int i,m,n,x;
	printf("请输入一个单数作为棱形的行数:");
	scanf("%d",&x);
	for(i=1;i<=x;i++)
	{
		for(m=1;m<=x-i;m++)
		printf(" ");
		for(n=1;n<=2*i-1;n++)
		printf("*");
		printf("\n");
	 } 
	    for(i=x;i>=1;i--)//与上方相反。 
	 {
    	for(m=1;m<=x-i;m++) 
    	printf(" ");
    	for(n=1;n<=2*i-1;n++)
    	printf("*");
    	printf("\n");
	 }
	 return 0;
}

运行如图所示:
在这里插入图片描述

上面的三角形与上方的1.0版本一样
下面的倒钩三角形则与1.0版本写作方法相反就行。
提醒仅仅是一个大的循环相反而不是所有循环都相反。

字母跑步

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main(){
	int a,b; 
	while(a<=40)
	{
    	system("cls"); 
	    b=1;//控制移动格数,b=1相当于移动1个字节。 
		while(b<a)//必须给一个循环条件。 
		{
			printf(" ");//为啥必须要使用空格呢我补空格行不行呢答案请看下方解答。 
			b++;		
		 } 
		 printf("i love you");//本来按照循环条件是可以移动40个字节但是因为我们在输出的时候字节站的 
		 Sleep(1);
		 a++;		 
}
	return 0;
}

以下是运行图片
在这里插入图片描述

从图中我们可以看到字母跑到了中间位置而前面却没有字母这是为什么呢?
因为啊我们设置一个清空函数移动一个清空一个最后效果就是这样啦。
设置空格的根本原因是因为:相当与一个助推器推着你跑但是如果你不敲
空格就没有助推器。

接下来是一个终极拓展

通过字母移动移动之后输出爱心。

请看代码:

#include<stdio.h>
#include<windows.h>
void delay()
{
    int i;
    for(i=0;i<=100000000;i++); 
}
int main()
 {
    int i,j;
	float x, y, a;
	while(i<=40)
	{
    	system("cls");
	    j=1;
		while(j<i)
		{
			printf(" "); 
			j++;
			
		 } 
		 printf("i love you");
		 system("color 0c"); 
		 delay(i);
		 i++;
		 
	}
    for (y = 1.5; y > -1.5; y -= 0.1)
    {
        for (x = -1.5; x < 1.5; x += 0.05)
        {
            a = x * x + y * y - 1;
            if (a * a * a - x * x * y * y * y <= 0)
            {
                printf("v");
                delay(); 
            }
            else
                printf(" ");
        }
        printf("\n");
        system("color 0c");
        delay();
        system("color 0e");
        delay();
        system("color 0c");
        delay();
        printf("i love you";
    }
    printf("我喜欢你");
    return 0;
}

在这里插入图片描述

在程序的最上面各位读者可以加一个选择使用死循环你只能选择爱我喜欢我否则重新选则直到选择了你想要的答案就输出爱心丫什么的你要表白的字丫什么的。

作者有话说:

好了今天的内容到这里也就圆满的结束了还是老样子如果您喜欢我的文章也觉得我的文章对您有帮助拓展了您的思维那么麻烦您点一个关注谢谢您了。
咱们下期再见。请添加图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值