C语言之——入门必刷题(2)(上)

简介: C语言之——入门必刷题(2)

前言

大佬就可以撤退了!!(当然也可以温故而知新呀!!)

本次为C语言入门刷题!重在扎实基础,温习学过的基础知识!!!

夯实基础,走得更远!!

一、冒泡排序的重要性!

在一些入门题目中,题目经常会让我们输入n个数,之后以升序或者降序的方式输出,或者比较。

这就需要我们来掌握一种排序方式——冒泡排序!下面举例说明:


思路:


    首先,要输出最高成绩的前五项,我们必须将所有输入成绩通过冒泡排序的方式,以降序的方式排好序后,通过输出数组前五个,即(i=0;i<5;i++) ,来输出前五项!


    那么接下来就要看你是否认真学习了呢?


    来和我的代码对比一下吧!

#include<stdio.h>
void max(int arr[], int sz)
{
  for (int i = 0; i < sz - 1; i++)
  {
    int flag = 0;
    for (int j = 0; j < sz - 1 - i; j++)
    {
      if (arr[j] < arr[j + 1])
      {
        int temp = arr[j];
        arr[j] = arr[j + 1];      //冒泡排序!!
        arr[j + 1] = temp;
        flag = 1;
      }
    }
    if (flag == 0)
    {
      break;
    }
  }
}
int main()
{
  int n = 0;
  int arr[50] = { 0 };
  scanf("%d", &n);
  for (int i = 0; i < n; i++)
  {
    scanf("%d", &arr[i]);
  }
  max(arr, n);
  for (int i = 0; i < 5; i++)   //输出前五项
  {
    printf("%d ", arr[i]);
  }
  return 0;
}

这里使用flag的作用是针对已经排好序的数组元素,无需排序而设立,从而减小时间复杂度。

假设起初flag=0,若需要排序,则flag=1。最后只需判断flag是否等于0,等于0则无需排序,直接退出即可!

二、简易计算机的实现(switch语句的重温)!

思路:首先,简易计算机简而言之,即输入   两个数  和    运算操作符,而后输出结果。

那我们可能会想,使用if else 语句可以吗?即如果输出的为  ’ / ’,就做除法运算等等......

if else  代码如下:

#include<stdio.h>
int main()
{
    double a=0,b=0;
    char ch=0;
    while(scanf("%lf %c %lf",&a,&ch,&b)!=EOF)
    {
        if(ch=='+'||ch=='-'||ch=='*'||ch=='/')  //如果输入的是四则运算符号
        {
            if(ch=='+')
                printf("%.4lf%c%.4lf=%.4lf\n",a,ch,b,a+b);
            else if(ch=='-')
                    printf("%.4lf%c%.4lf=%.4lf\n",a,ch,b,a-b);
            else if(ch=='*')
                printf("%.4lf%c%.4lf=%.4lf\n",a,ch,b,a*b);
            else if(ch=='/')    //做除法时,分母不能为0
              {
                if(b==0.0)
                    printf("Wrong!Division by zero!\n");
                else
                    printf("%.4lf%c%.4lf=%.4lf\n",a,ch,b,a/b);
              }
        }
        else         //如果输入的不为四则运算符号
            printf("Invalid operation!\n");
    }
    return 0;
}

那既然都是判断,有没有想过switch呢?

可以通过输入的不同运算符,来进入不同的入口,进行计算输出!!

switch()代码如下:    

#include<stdio.h>
int main()
{
    double m=0;
    double n=0;
    char a=0;
    scanf("%lf %c %lf",&m,&a,&n);
    switch(a)
 {
        case '+':
    {     
        double b=m+n;
        printf("%.4lf%c%.4lf=%.4lf",m,a,n,b);
        break;
    }
        case '-':
    {
        double b=m-n;
        printf("%.4lf%c%.4lf=%.4lf",m,a,n,b);
                break;
    }
        case '*':
    {
        double b=m*n;
        printf("%.4lf%c%.4lf=%.4lf",m,a,n,b);
                break;
    }
        case '/':
    {
        double b=m/n;
          if(n==0.0)
          {
              printf("Wrong!Division by zero!");
          }
          else
          {
              printf("%.4lf%c%.4lf=%.4lf",m,a,n,b);
          }
                break;
    }
    default :
       printf("Invalid operation!");
       break;
    return 0;
  }
}

switch 语句必须遵循下面的规则:


switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。       switch(sepression)

在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。

case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。

当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。

不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

一个 switch 语句可以有一个可选的 default: ,出现在 switch 的结尾。default:可用于在上面所有 case 都不为真时执行一个任务。                                  你学会了吗??

目录
相关文章
|
1月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
47 2
|
1月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
27 1
|
26天前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
3月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
4月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
66 4
【C语言入门】初识C语言:掌握编程的基石
|
3月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
54 1
|
4月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
98 2
|
4月前
|
前端开发 C语言 C++
C语言入门02---环境搭建
C语言入门02---环境搭建
|
4月前
|
编译器 C语言 C++
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
|
5月前
|
程序员 编译器 C语言
详解C语言入门程序:HelloWorld.c
详解C语言入门程序:HelloWorld.c