部分C语言语句

2022-10-05 11:48:00 浏览数 (1)

C 语言语句

分支语句

if语句

代码语言:c 复制
//单分支
if(表达式)
    语句;
//若表达式为真,则执行该语句,否则什么都不执行
if(表达式)
    语句1;
else
    语句2;
//若表达式为真,则执行语句1,否则执行语句2
//多分支
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else 
    语句3;
//若表达式1为真则执行语句1,另外如果表达式2成立则执行语句2
//否则执行语句3,以表达式1为先,三个语句只可执行一个
//只有表达式1为假,后面才可继续往下运行
代码语言:c 复制
#include<stdio.h>
int main()
{
    int age=17;
    if(age<18)
        printf("未成年");
    else 
        printf("成年");
    return 0;
}
代码语言:c 复制
//1.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int num = 0;
    scanf("%d",&num);
    if (num%2==1)
        printf("该数为奇数");
    else 
        printf("该数为偶数");
    return 0;
}
代码语言:c 复制
//2.
#include<stdio.h>
int main()
{
	int i = 1;
	while (i<100)
	{
		if (i%2==1)
		{
			printf("%d ", i);
		}
		i  ;
	}
	
	return 0;
}

switch语句(表达多分支)

代码语言:c 复制
#include<stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1://case接常量且为整型常量表达式
            printf("星期一n");
            break;//break用于switch语句的结束
        case 2:
            printf("星期二n");
            break;
        default://当输入值超出switch范围,进入default
            printf("输入错误");
            break;
    }
    return 0 ;
}
  • break 若未出现则继续往下运行代码
  • break 可省略
代码语言:c 复制
#include<stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("工作日n");
            break;//输入12345值都出现工作日
    }
    return 0 ;
}

while 语言语句(循环)

代码语言:c 复制

while(表达式)//若表达式为真则无限循环,若变为假则停止循环

{

代码语言:txt复制
循环语句

}

代码语言:c 复制
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("ldl大帅哥 ");
		i  ;
	}
	
	return 0;
}
  • break 在while中的作用
代码语言:c 复制
//终止循环
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
        if(i==5)
            break;//i=5时终止循环
		printf("%d ",i);//只打印到 4
		i  ;
	}
	
	return 0;
}
  • continue 在while中作用
代码语言:c 复制
//终止本次循环
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
        i  ;
        if(i==5)
            continue;//i=5时回到while语句循环
        //即终止i==5这次的循环
		printf("%d ",i);//不打印 5
	}
	
	return 0;
}
  • getchar()在while中的作用
代码语言:c 复制
//getchar()为一个输入函数
//在输入函数中有一个输入缓冲区
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int ch = 0;
    int ret = 0;
	char password[20] = { 0 };
	printf("请输入密码:");
	scanf("%s", password);
    //取走缓冲区中的"%s"还剩下n
	while ((ch = getchar()) != 'n');
    //读取到"n"字符后停止
	printf("请确认(Y/N):");
	ret = getchar();
	if (ret == 'Y')
	{
		printf("确认成功");
	}
	else
	{
		printf("放弃确认");
	}
	return 0;
}
  • putchar()为输出函数
代码语言:c 复制
#include<stdio.h>
int main()
{
    int ch = 0;
    while((ch = getchar())!=EOF)
    {
        if(ch<'0'||ch>'9')
            continue;
        putchar(ch);//相当于printf()
    }
    return 0;
}

for循环

代码语言:C 复制
#include<stdio.h>
int main()
{
    int i = 0;
    // 初始化 判断 调整
    for(i=1;i<10;i  )
    {
        if(i==5)
            break;//跳出循环
        printf("%d ",i);
    }
    return 0;
}
  • 注意:不可再for循环内修改变量,防止for循环失去控制
  • 前闭后开写法
代码语言:c 复制
for(expr1;expr2;expr3)
{}
  • 变种
代码语言:c 复制
//1.
for( ; ; )//括号内无表达式,表达式被省略
{
    printf("");
}
//2.
for(  ,  ;  ,  ;  ,   )//用多个表达式控制
{
    printf("");
}

do...while()循环

代码语言:c 复制
#include<stdio.h>
int mian()
{
    int i = 0;
    do
    {
        printf("%d");
        i  ;
    }
    while(i<10);
}
return 0;
  • break与continue用法同上

二分查找法

代码语言:c 复制
//从一个数组里找下标为7
#include<stdio.h>
int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int k = 7;
    int sz = sizeof(arr)/sizeof(arr[0]);//计算元素个数
    int left = 0;//左下标
    int right = sz - 1;//右下标
    while(left<=right)
    {
        int mid = (left   right)/2;
        if(arr[mid]<k)
        {
            left = mid   1;
        }
        else if(arr[mid]>k)
        {
            right = mid - 1;
        }
        else
        {
            printf("找到了,下标是:%d",mid);
        }
    }
    if(left>right)
    {
        printf("找不到");
    }
    return 0;
}

多个字符两端向中间移动

代码语言:c 复制
//"welcome to my world !"
//"#####################"
//实现将井号对应上方元素下移
#include<stdio.h>
#include<string.h>//strlen
#include<windows.h>//Sleep
#include<stdlib.h>//system
int main()
{
	char arr1[]="welcome to my world !";
    char arr2[]="#####################";
    int left=0;
    int right=strlen(arr1)-1;//右下标,strlen函数不计
    while(left<=right)
    {
        arr2[left]=arr1[left];
        arr2[right]=arr1[right];
        printf("%sn",arr2);
        Sleep(1000);//1000单位为毫秒,停留一秒
        system("cls");//system为执行系统命令函数,'cls'为清空屏幕
        left  ;
        right--;
    }
    printf("%sn",arr2);
    return 0;
}

模拟密码登录

代码语言:c 复制
//只登录三次
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>//strcmp函数
int main()
{
    int i=0;
    char password[20]={0};
    for(i=0;i<3;i  )
    {
        printf("输入密码:");
        scanf("%s",password);
        if(strcmp(password,"12160809")==0)//==不能用来比较字符串是否相等,应使用一个库函数-strcmp,括号内相等则为零
        {
            printf("登录成功n");
            break;
        }
        else
            printf("密码错误n");
    }
    if(i==3)
        printf("三次密码均错误,立刻报警,你跑不掉了!- !");
    return 0;
}

0 人点赞