首页 > 其他分享 >C语言学习第二章

C语言学习第二章

时间:2024-10-14 21:46:56浏览次数:3  
标签:语句 break int else C语言 学习 while printf 第二章

目录

1、程序设计

1.1、选择结构

1.2、循环语句

1.3、break(退出)与continue(继续)

1.4、goto语句

2、例题

1、求解1~100的和

2、从键盘上输入一个学生的成绩,判断该学生成绩等级:

3、完成两个数的四则运算

4、输入整数a和整数b,将a时将其反序<>

5、从键盘输入一个三位整数,判断它是否为水仙花数,水仙花数是指各位数的立方和等于该数本身的数,如153 = 1^3 +5^3 +3^3;


1、程序设计
1.1、选择结构

C语言的选择结构主要用if语句if...else语句以及switch语句来实现。

1、if语句可以根据一个条件是否满足来决定是否执行某段代码

2、if...else语句是在条件满足时执行一段代码,不满足时执行另一段代码

3、switch语句是根据变量的值来选择执行哪个代码块

#include <stdio.h>
​
int main()
{
    int a;
    scanf("%d",&a);
    // if 语句
    if(a == 0)  // 如果a等于0
    {
        printf("a = 0\n");   // 输出 a=0;
    }
​
    // if...else...语句
    if(a > 1)
    {
        printf("a 大于 1\n");
    }
    else 
    {
        printf("a 不大于 1\n");
    }
    // switch 语句
    switch (a)
    {
    case 1:
        printf("a = 1\n");
        break;
    case 2:
        printf("a = 2\n");
        break;
    
    default:
        break;
    }
}
1.2、循环语句

C语言的循环语句包括while循环、do-while循环和for循环。

1、while循环先判断条件再执行循环体;

while循环语法格式:

while(条件){
    循环体;
}
while(a != 0)
{
    printf("%d\t",a);
    a--;
}
// 输出结果:10  9  8  7  6  5  4  3  2  1

2、do-while循环先执行循环体再判断条件,至少执行一次;

do {
    循环体;
} while (条件表达式);
int a = 10;
do{
    printf("%d\t",a);
    a--;
} while(a != 0)
// 输出结果:10  9  8  7  6  5  4  3  2  1

3、for循环在循环前初始化、条件判断和迭代操作都在一个语句中完成。

for (初始化表达式; 条件表达式; 迭代表达式) {
    // 循环体
}
for(int i = 0; i < 10; i++)
{
    printf("%d\t",i);
}
//  输出结果: 0  1  2  3  4  5  6  7  8  9
1.3、break(退出)与continue(继续)
  1. break关键字只能用于循环(while for do...while)和switch语句中,表示结束循环或者跳出switch语句

  2. break关键字只能跳出最近一层的循环,也就是说,如果有多重循环,只能跳出最靠近break语句那层循环

  3. break关键字不能单独用于 if语句中,除非if语句外面包含了循环

    switch (a)
    {
    case 1:
        printf("a = 1\n");
        break;  // 跳出 switch 语句
    case 2:
        printf("a = 2\n");
        break;  // 跳出 switch 语句
        
    default:
        break;  // 跳出 switch 语句
    }
    int n = 10;
    while(1)
    {
        n--;
        if(n == 0)
            break;  // 跳出当层 while 循环体
    }
  4. continue关键字只能用于循环体中(while do...while for),用于提前结束当前循环体后,又从最近一层循环体开始执行

  5. continue关键字不能 单独用于 if语句或者switch 语句中,除非外面包含了循环

for(int i = 0; i < 10; i++)
{
	if(i%2 == 0)
		continue; // 跳过所有能被2整除的数
	printf("%d\t",i);
}
1.4、goto语句

goto语句语法格式:

goto 语句标号;//程序会直接跳转到语句标号的地方执行

语句标号:
  1. goto语句的无条件跳转不利于程序的可读性,一般不建议使用,linux内核常用

  2. goto语句常被用在程序的错误处理中

int main()
{
    printf("%d\n", __LINE__); // 打印第3行 
    
    // 无条件跳转到label处 
    goto label;
    printf("%d\n", __LINE__); // 打印第7行,此处被略过
label:  
    printf("%d\n", __LINE__); // 打印第9行
}

(突然发现写的越来越水了,救命,所以,加点例题吧。。。)

2、例题
1、求解1~100的和
1、用while循环写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int sum = 0;
    int i = 0;
    while(i != 100)
    {
        i++;
        sum += i;
    }
    printf("%d\n",sum);
    return 0;
}
2、用do...while...循环写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int sum = 0;
    int i = 0;
    do
    {
        i++;
        sum += i;
    }while(i != 100);
    printf("%d\n",sum);
    return 0;
}
3、用for循环写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int sum = 0;
    for(int i = 0; i <= 100; i++)
    {
        sum += i;
    }
    printf("%d\n",sum);
    return 0;
}
2、从键盘上输入一个学生的成绩,判断该学生成绩等级:

成绩在90~100,等级为 A;

成绩在80~89,等级为B;

成绩在70~79,等级为C;

成绩在60~69,等级为D;

成绩在0~59,等级为E;

1、用switch语句写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int score;
    char grade;
    scanf("%d",&score);
    score /= 10;
    switch (score)
    {
    case 10:
    case 9:
        grade = 'A';
        break;
    case 8:
        grade = 'B';
        break;
    case 7:
        grade = 'C';
        break;
    case 6:
        grade = 'D';
        break;
    default:
        grade = 'E';
        break;
    }
    printf("%c\n",grade);
    return 0;
}
2、用if..else if..else..语句写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int score;
    char grade;
    scanf("%d",&score);
    if(score >= 90 && score <= 100)
    {
        grade = 'A';
    }
    else if(score >=80 && score < 90)
    {
        grade = 'B';
    }
    else if(score >=70 && score < 80)
    {
        grade = 'C';
    }
    else if(score >=60 && score < 70)
    {
        grade = 'D';
    }
    else
    {
        grade = 'E';
    }
    printf("%c\n",grade);
    return 0;
}
3、完成两个数的四则运算
1、用switch语句写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    float num1,num2;
    char choose;
    scanf("%f%c%f",&num1,&choose,&num2);
    switch (choose)
    {
    case '+':
        printf("%g\n",num1+num2);
        break;
    case '-':
        printf("%g\n",num1-num2);
        break;
    case '*':
        printf("%g\n",num1*num2);
        break;
    case '/':
        printf("%g\n",num1/num2);
        break;
    default:
        printf("输入错误\n");
        break;
    }
    return 0;
}
2、用if..else if..else..语句写
#include <stdio.h>
int main(int argc, char const *argv[])
{
    float num1,num2;
    char choose;
    scanf("%f%c%f",&num1,&choose,&num2);
    if(choose == '+')
    {
        printf("%g\n",num1+num2);
    }
    else if(choose == '-')
    {
        printf("%g\n",num1-num2);
    }
    else if(choose == '*')
    {
        printf("%g\n",num1*num2);
    }
    else if(choose == '/')
    {
        printf("%g\n",num1/num2);
    }
    else
    {
        printf("输入错误\n");
    }
    return 0;
}
4、输入整数a和整数b,将a<b时将其反序
交换数值的三种方法
1、c
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a,b;
    scanf("%d%d",&a,&b);
    if(a < b)
    {
        int temp = a;
        a = b;
        b = temp;
    }
    printf("a = %d, b = %d\n",a,b);
    return 0;
}
2、采用加减
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a,b;
    scanf("%d%d",&a,&b);
    if(a < b)
    {
        a = a + b;
        b = a - b;
        a = a - b;
    }
    printf("a = %d, b = %d\n",a,b);
    return 0;
}
3、用异或
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a,b;
    scanf("%d%d",&a,&b);
    if(a < b)
    {
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
    }
    printf("a = %d, b = %d\n",a,b);
    return 0;
}
5、从键盘输入一个三位整数,判断它是否为水仙花数,水仙花数是指各位数的立方和等于该数本身的数,如153 = 1^3 +5^3 +3^3;
// 用到了if语句
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int num;
    printf("请输入三位整数:\n");
    scanf("%d",&num);
    int a = num % 10; // 个位
    int b = num / 10 % 10; // 十位
    int c = num / 100; // 百位
    if(num == (a*a*a + b*b*b + c*c*c))
    {
        printf("该数为水仙花数\n");
    }
    return 0
}

标签:语句,break,int,else,C语言,学习,while,printf,第二章
From: https://blog.csdn.net/m0_65146517/article/details/142926638

相关文章

  • DBPM: 增强时间序列对比学习:一种动态坏对挖掘方法《Towards Enhancing Time Series Co
    今天是2024年10月12日,思路枯竭,还是论文看的太少了,继续看论文.论文:TowardsEnhancingTimeSeriesContrastiveLearning:ADynamicBadPairMiningApproach或者是:TowardsEnhancingTimeSeriesContrastiveLearning:ADynamicBadPairMiningApproachGitHub:https://git......
  • 基础架构补全—C语言基础入门篇(二)
    前言:    上一篇博客我仅简单对C语言语法基础进行了简单介绍,这次我将对其中遗漏知识进行补全及延申,但冰冻三尺非一日之寒,现在我也只不过是站在C语言的光辉大门前罢了,尚没有彻底迈出一步,希望各位能共励共勉,在接下来的学习中都能,鹏程发韧,培风图南,日进一卒,功不唐捐!1.注释......
  • 机器学习和神经网络的研究与传统物理学的关系
    将2024年诺贝尔物理学奖授予机器学习与神经网络领域的研究者,这一决定无疑具有里程碑式的意义,它不仅标志着物理学界对交叉学科研究的认可,也体现了科学技术发展趋势的深刻变革。以下是我对这一评奖结果的几点看法:科学边界的拓展:传统上,诺贝尔物理学奖聚焦于对自然界基本规律的理......
  • C语言经典100例-第八题(想提升C语言代码能力的看过来!)
    持续更新!!!1.刷题链接和地址: C语言教程|菜鸟教程 菜鸟教程C语言专栏这里的"C经典100例"(看红色框框)2.解题:2.1读题:题目呢,就是输出99乘法表,就是1*1=12*1=2,然后一直到9*9,也是很简单的一道题目 这个就是输出的结果样式 2.2解题思路:首先呢,我们是不是应该考虑......
  • 【C语言刷力扣】2206.将数组划分成相等数对
    题目:解题思路:    题目中要求元素成数对出现,即每个元素出现偶数次。用哈希表存放每个数出现的次数,再循环查看每个数的次数是否位偶数。typedefstruct{intkey;intcount;UT_hash_handlehh;}hashEntry;booldivideArray(int*nums,intnumsS......
  • C学习笔记 基础算法整理 (10.9 - )(正学习,持续更新中)
    本文涵盖了适合初学者学习的基础、经典算法。包括:递归递推、排序、搜索/查找、枚举、图/树遍历、动态规划等。推荐了解  C语言各部分基本知识  后进行学习。学习使用算法,可以:了解针对某类问题的通用解决方案提高逻辑思维能力将复杂的任务分解为简单的步骤精简代码,避免......
  • 人工智能的核心技术之机器学习
    大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300+款以上的AI应用工具。关注科技及大模型领域对社会的影响10年+。关注我一起驾驭AI工具,拥抱AI时代的到来。人工智能(AI)核心技术概述:人工智能(AI)是一个快速发展的领域,其核心技术不断演进和扩展。以下是......
  • Java毕业设计-基于SSM框架的在线学习系统项目实战(附源码+论文)
    大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • 从零开始的python学习(三)P25+P26+P27
    本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb 上节课学习......
  • 从零开始的python学习(三)P28+P29+P30+P31
    本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb上节课介绍了......