C语言入门,有手就行老铁 循环选择训练
Posted Ps_Q
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言入门,有手就行老铁 循环选择训练相关的知识,希望对你有一定的参考价值。
其实只看简单的循环和选择语句,感觉还是没什么难度的,那我们这篇来看看常见的一些题型,在我经常帮做C语言作业和考试过程中,常见的一些。
打印图案型
//我们来打印如下图案 看看怎么做
*
**
***
****
*****
首先看代码
#include<stdio.h>
main()
int i,j;
for (i=0; i<5; i++)
printf("* \\n");
/*运行结果 其实就是5列,每一列一个*
*
*
*
*
*
*/
那么如果我们要做到如下图案是不是成了一半呢?首先我们确定总共有5行,就可以确定第一个循环语句,来看下面
#include<stdio.h>
main()
int i,j;
for (i=0; i<5; i++)
for(j=0;j<5;j++)
printf("*");
printf("\\n");
/*运行结果
*****
*****
*****
*****
*****
*/
我首先第一个for循环确定5行,然后在内部嵌入一个for循环,来代表列,此时我用每行5个来测试,就得到这种运行结果,那如果当我们的第二个for循环的表示式 改成这样呢 j<=i,来看看会怎么样
#include<stdio.h>
main()
int i,j;
for (i=0; i<5; i++)
for(j=0;j<=i;j++)
printf("*");
printf("\\n");
/*运行结果
*
**
***
****
*****
*/
是不是就得到了我们想要的结果,这样就满足了第一列循环一次,第二列循环两次
我们可以列个式子
注意看第二个循环语句 for(j=0;j<=i;j++)
当i = 0 也就是第一行 for( j=0;j<=0;j++) 此次就是只会满足一次循环 所以第一行只有一个号
好的 那么走完这个 i++自增一下
当i = 1 也就是第二行 for( j=0;j<=1;j++) 此时j = 0 和j = 1 都满足情况,看见没,这样第二行就有两个号,后面就是一样的道理。
好的我们再来玩点别的,懂了上面的这些,我们做一个9行的形状
#include<stdio.h>
main()
int i,j;
for (i=1; i<10; i++)
for(j=1;j<=i;j++)
printf("*\\t");
printf("\\n");
/* 运行结果
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
*/
注意看,我在打印的同时 后面加了一个 \\t 这其实和\\n类似,这是制表建,也就是电脑键盘的TAB,可以空出几个格子,OK我们做到了打印9行的直角三角形,那么我们把号替换成别的呢?来看看
#include<stdio.h>
main()
int i,j;
for (i=1; i<10; i++)
for(j=1;j<=i;j++)
printf("%d×%d=%d\\t",j,i,i*j);
printf("\\n");
/*运行结果
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
*/
对了这里要提到之前没说的运算符,*,这个玩意在C语言中就是×,需要记一下哦,还有÷在C语言中是用/表示,在式子中也遵循先乘除后加减的逻辑。
看到没,我们得出来了九九乘法表,是不是很简单就实现了很常见的题目,其实可以根据运行结果去看这整个函数的循环流程,是不是i=1,j=1就是第一行呢,而i=2,j=1那就是第二行的第一个也就是1×2=2.
ok其实还有很多常见的图案,可以跟大家演示一下,我就不细细讲解了,可以自己去敲一下就很好理解了
#include<stdio.h>
main()
int i,j;
for (i=0; i<6; i++)
for (j=6;j>i ;j-- )
printf(" ");
for (j=0; j<=i; j++)
printf("*");
printf("\\n");
/*运行结果
*
**
***
****
*****
******
*/
#include<stdio.h>
main()
int i,j;
for (i=0; i<6; i++)
for (j=6; j>i; j--)
printf(" ");
for (j=0; j<2*i+1;j++)
printf("*");
printf("\\n");
/* 运行结果
*
***
*****
*******
*********
***********
*/
#include<stdio.h>
main()
int i,j,k;
for(i=1;i<=5;i++)
for(j=6;j>i;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\\n");
for(i=1;i<=6;i++)
for(j=1;j<=i-1;j++)
printf(" ");
for(k=1;k<=13-2*i;k++)
printf("*");
printf("\\n");
/* 运行结果
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
*/
#include<stdio.h>
main()
int i,j;
for (i=0; i<3; i++)
for (j=4;j>i ; j--)
printf(" ");
for (j=0; j<2*i+1; j++)
printf("*");
printf("\\n");
for (i=0; i<4; i++)
for (j=4; j>i; j--)
printf(" ");
for (j=0; j<2*i+1; j++)
printf("*");
printf("\\n");
for (i=0; i<5; i++)
for (j=4; j>i; j--)
printf(" ");
for (j=0; j<2*i+1; j++)
printf("*");
printf("\\n");
for (i=0; i<5; i++)
for(j=0;j<3;j++)
printf(" ");
for (j=0; j<3;j++ )
printf("*");
printf("\\n");
for (i=0; i<2; i++)
for (j=0; j<10; j++)
printf("*");
printf("\\n");
/*运行结果
*
***
*****
*
***
*****
*******
*
***
*****
*******
*********
***
***
***
***
***
**********
**********
*/
其实很多形状啊都是个拆分成几小块去实现的,自己细看会烧脑哦,注意补充营养别跟不上。拜拜下一篇继续写一些关于循环和选择语句的题目
以上是关于C语言入门,有手就行老铁 循环选择训练的主要内容,如果未能解决你的问题,请参考以下文章