C语言结构

简介: C语言结构

选择结构

1. else 只与上面离它最近的一个 if 配对。(除花括号括起来外)

2. C语言中,编译器忽略缩进,所以 if else 配对不看缩进。(与python不同)

if else 基本结构:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int i = 0;
  scanf("%d", &i);
  if (i >= 18)
  {
    printf("你已经成年\n");
    printf("今年你 %d 岁\n",i);
  }
  else
  {
    printf("你还未成年\n");
    printf("今年你 %d 岁\n", i);
  }
  return 0;
}


if else 双层嵌套结构:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int i = 0;
  scanf("%d", &i);
  if (i < 18)
    printf("未成年\n");
  else
  {
    if (i == 18)
      printf("刚好成年\n");
    else
      printf("已经成年\n");
  }
  return 0;
}

 else if 多重选择结构:      

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int i = 0;
  scanf("%d", &i);
  if(i<=18)
    printf("未成年\n");
  else if(i==18)
    printf("刚好成年\n");
  else if(i>18)
    printf("已经成年\n");
  return 0;
}

switch case 多重选择结构:

switch (expression) 
{
    case value1: statement
    case value2: statement
    default: statement
}


define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int day = 0;
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    printf("星期一\n");
    break;
  case 2:
    printf("星期二\n");
    break;
  case 3:
    printf("星期三\n");
    break;
  case 4:
    printf("星期四\n");
    break;
  case 5:
    printf("星期五\n");
    break;
  case 6:
    printf("星期六\n");
    break;
  case 7:
    printf("星期七\n");
    break;
  }
  return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#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;
  case 6:
  case 7:
    printf("休息日\n");
    break;
  default:
    printf("输入错误\n");
    break;
  }
  return 0;
}}  

switch语句中的break和default:

1. 在switch条件语句中,case后面没有break,则会接着往下面依次执行,有可能会多执行其他的case情况,直到遇到break结束,或者遇到return结束。


2. 在switch条件语句中,如果有情况难以用case说明,则使用default统一处理。


操作符

关系操作符

1.( >  <  >=  <=  ==  !=  )

2. 关系操作符构成关系表达式——正确等于1,错误等于0。

3. 多个关系运算符不宜连⽤。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
int main()
{
  int a = 5;
  printf("%d\n", a == 5);//1
  printf("%d\n", a == 1);//0
  return 0;
}

( 5 < 6 < 7 )//错误,不能将将多个关系操作符连用
( 5<6 && 6<7 )//正确

条件操作符

表达式1 ? 表达式2 : 表达式3
   真         算         不算
   假        不算         算
  x = y < 0 ? -y: y;
 
//可以写成:
  
  if (y < 0)
      x = -y;
  else
    x = y;

逻辑操作符

  !   取补集 (优先运算)
  &&  取交集
  ||  取并级


1. 可能出现短路情况。如果前一步已经能够判断真假,就不进行后面的步骤 。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int i = 0 , j = 5 , k = 8;
  int a = i++ && j-- && k++;
    //第一步i==0,就已经短路。
  printf("%d", j);
  return 0;
}

操作符综合范例

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
//闰年:能被4整除,但不能被100整除;
//      能被400整除。
{
  int i;
  scanf("%d", &i);
  if ((i % 4 == 0) && (i % 100 != 0))
  {
    printf("是闰年");
  }
  else if (i % 400 == 0)
  {
    printf("是闰年");
  }
  else
    printf("是平年");
    return 0;
}

循环结构

while循环

#include <stdio.h>
int main()
{
    int n = 0;//初始化
    scanf("%d", &n);
    while(n)//判断
    {
        printf("%d ", n%10);//操作
        n /= 10;//调整
    }
    return 0;
}

for循环

for(表达式1; 表达式2; 表达式3)
 
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
#include <stdio.h>
int main()
{
  int i = 0;
  for(i=1; i<=10; i++)//初始化,判断,调整
  {
      printf("%d ", i);//操作
  }
  return 0;
}

do-while循环

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int n = 0, m = 0;//初始化
  scanf("%d", &n);
  do
  {
    m++;//操作
    n /= 10;//调整
  } while (n);//判断
  printf("%d", m);
  return 0;
}


循环语句中的break和continue

1. 循环语句中的 break 也是⽤于终⽌循环的,不管循环还需要循环多少次,只要执⾏到了 break ,循环就彻底终⽌。


2. 循环语句中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调整判断部分。


goto语句

1. goto 语句可以实现在同⼀个函数内,跳转到设置好的标号处。

2. 少用goto语句,容易出错。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
  printf("hehe");
  goto next;
  printf("haha");
next:
  printf("wuwu");
  return 0;
}

综合范例

找出100~200之间的素数,并打印在屏幕上。(素数⼜称质数,只能被1和本⾝整除的数字)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int i = 0;
  for (i = 100; i < 200; i++)
  {
    int j = 0;
    int num = 0;
    for (j = 2; j < i - 1; j++)
    {
      if (i % j == 0)
      {
        num = 0;
        break;
      }
      else
      {
        num = 1;
      }
    }
    if (num == 1)
    {
      printf("%d\n", i);
    }
  }
  return 0;
}

致谢

 感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!

相关文章
|
2月前
|
网络协议 编译器 Linux
【C语言】结构体内存对齐:热门面试话题
【C语言】结构体内存对齐:热门面试话题
101 0
|
1月前
|
存储 搜索推荐 算法
【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)
本文介绍了树和二叉树的基本概念及结构,重点讲解了堆这一重要的数据结构。堆是一种特殊的完全二叉树,常用于实现优先队列和高效的排序算法(如堆排序)。文章详细描述了堆的性质、存储方式及其实现方法,包括插入、删除和取堆顶数据等操作的具体实现。通过这些内容,读者可以全面了解堆的原理和应用。
72 16
|
6月前
|
C语言
【C语言基础篇】结构控制(中)循环结构
【C语言基础篇】结构控制(中)循环结构
|
3月前
|
存储 编译器 程序员
C语言程序的基本结构
C语言程序的基本结构包括:1)预处理指令,如 `#include` 和 `#define`;2)主函数 `main()`,程序从这里开始执行;3)函数声明与定义,执行特定任务的代码块;4)变量声明与初始化,用于存储数据;5)语句和表达式,构成程序基本执行单位;6)注释,解释代码功能。示例代码展示了这些组成部分的应用。
120 10
|
3月前
|
C语言
C语言程序设计核心详解 第四章&&第五章 选择结构程序设计&&循环结构程序设计
本章节介绍了C语言中的选择结构,包括关系表达式、逻辑表达式及其运算符的优先级,并通过示例详细解释了 `if` 语句的不同形式和 `switch` 语句的使用方法。此外,还概述了循环结构,包括 `while`、`do-while` 和 `for` 循环,并解释了 `break` 和 `continue` 控制语句的功能。最后,提供了两道例题以加深理解。
104 7
|
3月前
|
存储 算法 C语言
数据结构基础详解(C语言): 二叉树的遍历_线索二叉树_树的存储结构_树与森林详解
本文从二叉树遍历入手,详细介绍了先序、中序和后序遍历方法,并探讨了如何构建二叉树及线索二叉树的概念。接着,文章讲解了树和森林的存储结构,特别是如何将树与森林转换为二叉树形式,以便利用二叉树的遍历方法。最后,讨论了树和森林的遍历算法,包括先根、后根和层次遍历。通过这些内容,读者可以全面了解二叉树及其相关概念。
|
3月前
|
C语言
C语言程序设计核心详解 第三章:顺序结构,printf(),scanf()详解
本章介绍顺序结构的基本框架及C语言的标准输入输出。程序从`main()`开始依次执行,框架包括输入、计算和输出三部分。重点讲解了`printf()`与`scanf()`函数:`printf()`用于格式化输出,支持多种占位符;`scanf()`用于格式化输入,需注意普通字符与占位符的区别。此外还介绍了`putchar()`和`getchar()`函数,分别用于输出和接收单个字符。
|
3月前
|
存储 机器学习/深度学习 C语言
数据结构基础详解(C语言): 树与二叉树的基本类型与存储结构详解
本文介绍了树和二叉树的基本概念及性质。树是由节点组成的层次结构,其中节点的度为其分支数量,树的度为树中最大节点度数。二叉树是一种特殊的树,其节点最多有两个子节点,具有多种性质,如叶子节点数与度为2的节点数之间的关系。此外,还介绍了二叉树的不同形态,包括满二叉树、完全二叉树、二叉排序树和平衡二叉树,并探讨了二叉树的顺序存储和链式存储结构。
|
4月前
|
C语言
C语言------选择结构
这篇文章是C语言选择结构的入门实训,包括多个练习题及其源代码,旨在帮助读者熟练掌握条件语句和选择结构程序设计方法,并熟悉switch语句和程序调试过程。
C语言------选择结构
|
6月前
|
C语言
四:《初学C语言》— 选择结构
本篇文章详细讲述了C语言中的选择结构(if...else语句和switch语句)并附上多个代码示例
133 9
四:《初学C语言》—  选择结构