初识c语言————新手小白学习c语言的第六天————do~while循环语句(中)

今天我们要学的是c语言中的分支和循环语句_do~while循环语句(中)


目录

一.练习(1)

二.练习(2)

三.goto语句

四.本节重点


下面我们正式开始学习c语言中的分支和循环语句_do~while循环语句(中)

 一.练习(1)

   编写代码,演示多个字符从两端移动,向中间汇聚

   

#include <stdio.h>
#include <string.h>
#include <windows.h>

int main()
{
   char num1[]={"hello world"};
   char num2[]={"###########"};
   int left=0;
   int right=strlen(num1)-1;
   while(left<=right)
   {
     num2[left]=num1[left];
     num2[right]=num1[right];
     printf("%s\n",num2);
     Sleep(1000);
     left++;
     right--;
    }
    return 0;
}

    代码解析:

1.由于本代码用到printf,所以要声明<stdio.h>头文件

2.由于本代码用到了strlen,所以要声明<string.h>头文件

3.由于本代码用到了Sleep(注意大写),所以要声明<windows.h>头文件

4.Sleep括号内的单位是毫秒,其作用是让代码在其位置停止一段时间,1000毫秒等于一秒

5.strlen的作用是查看字符数组中有效元素的个数它不会把\0计入,由于数组下标是从零开始的所以要减一,如果用sizeof(num2)/sizeof(num2[0])则需要减二,因为sizeof会把\0计入

   运行结果:

二.练习(2) 

   编写代码实现,模拟用户登录场景,并且只能登陆三次(只允许输入三次密码,如果密码正确则提示登陆完成,如果三次均输入错误,则退出程序

#include <stdio.h>
#include <string.h>

int main()
{
  //假设密码为123456
  char num1[]={"123456"};
  char num2[20];
  int a=1;
  for(; a<=3;a++)
  {
    printf("请输入密码\n");
    scanf("%s",num2);
    if(0==strcmp(num1,num2))
    {
      printf("输入正确,登陆成功\n");
      break;
    }
    else
      printf("输入错误\n");
  }
   if(a==4)
    printf("三次均输入错误,退出登录程序");
}

   代码解析:

1.本程序需要用到字符串比较函数strcmp函数,所以需要声明头文件<string.h>

2.由于本程序最多能登录三次,所以a=1,a<=3,a++

3.由于本程序要求当三次登陆中有一次答对后就退出程序,所以要用到break

4.strcmp函数是字符串比较函数,主要比较ascll码值,其中如果num1==num2,则strcmp的值为零 ,因为srcmp函数是将字符串的每个元素挨个比较。当字符串长度相同字符不同时,遇到字符不同的元素的时候,则返回num1中这个元素与num2中这个元素之间的差值,当遇到相同元素的时候则一直往下走,直到双方都达到\0当字符串长度不同时,多余的字符会与\0进行比较,因为数组多余的元素会被当成‘\0'或0来对待。

   代码结果:

三.goto语句 

   goto一般不经常被使用,因为它能够很容易地被其他函数所代替,它经常用于复杂的嵌套的循环语句中,例如:

#include <stdio.h>
int main()
{
  for(int a=0;a<=4;a++)
 {
   for(int b=0;b<=3;b++)
  {
    for(int c=0;c<=2;c++)
    {
     if(2==a&&3==b)
      goto age;
    }
  }
 }
 age:printf("程序结束");
 return 0;
}

   在上述代码中goto语句是程序执行直接从goto age跳到age那一段程序中,从而结束了整个复杂的for循环,这就是goto语句的主要作用(能被break函数来平替,但是break函数太过于麻烦)

   练习:

   使用goto语句制作一个恶搞关机小游戏 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
  char num1[20];
  age:
  system("shutdown -s -t 60");
  printf("请输入 i am dog 来结束程序");
  scanf("%s",num1);
  if(strcmp(num1,"i am dog")==0)
  system("shutdown -a");
  else
  goto age;
}

   代码解析 

1. system就是windows电脑中的cmd,使用它之前需要引入头文件<stdlib.h>

2.shutdown -s -t 60的作用是电脑60秒后关机s

3.shutdown -a的作用是停止电脑重启

4.strcmp函数用于字符串之间的大小比较

5. age:和goto age 构成了简单的循环

 四.本节重点

1.Sleep函数的作用及其头文件

2.strlen函数的作用及其头文件

3.strlen函数的作用效果和sizeof的作用效果的区别

3.strcmp函数的作用及其头文件

4.strcmp函数的作用流程


明天我们学习c语言中的分支和循环语句_do~while循环语句(下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值