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语言入门,有手就行老铁 循环选择训练的主要内容,如果未能解决你的问题,请参考以下文章

C语言入门,有手就行老铁 循环选择训练

C语言入门,有手就行老铁 常见题目训练

C语言入门,有手就行老铁 常见题目训练

C语言入门,有手就行老铁 常见题目训练

C语言入门,有手就行老铁 常见题目训练

C语言入门,有手就行老铁 循环语句while do while for