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

本文章为C语言入门必刷题,每道题都包含了C语言的基础知识点,值得我们去经常复习,并牢记在心的一些题目!!


C语言之——入门必刷题(3)_第1张图片

                                                                                                                             超佳出品

文章目录

  • 前言
  • 一、数据进行比大小或者求最大数
  • 二、桶排序应用
  •   1.去重整数并排序
  •   2.查找数字出现的次数
  • 总结


前言

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

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

夯实基础,走得更远!!


一、数据进行比大小或者求最大(小)数

示例:

C语言之——入门必刷题(3)_第2张图片

1.   可能当我们看到求最大值或者最小值的时候,首先想到的是冒泡排序(详情点击),将整个数组元素排序之后输出第一或者最后一个来输出最大值或者最小值。

2.   但今天我们用不同的方法来实现!

代码如下:

#include
int main()
{
    int n=0,m=0;
    scanf("%d %d",&n,&m);   //几行几列

    int arr[10][10]={0};
    int i=0,j=0;
    int max=arr[0][0];       //最大值先定为数组的第一个元素

    int x=0,y=0;             //输出的坐标x,y

    for(i=0;imax)              //比max大的话,就赋值于max
            {
                max=arr[i][j];
                x=i+1;
                y=j+1;               //题目要求输出x和y,不是数组的下标,而是下标加1
            }
        }
    }
    printf("%d %d",x,y);
    return 0;
    
}

 注意:这里为什么一开始我们不将0作为最大值呢?

因为当数组元素中有负数时,或者都为负数,如果我们将0作为最大值,则输出结果会永远是0.

所以将最大值作为数组中的任意一个元素,就不会影响到正常的比较了。(max=arr[0],只是个人习惯)


 

二、桶排序应用

1.去重整数并排序

C语言之——入门必刷题(3)_第3张图片

 1.  首先,看到这道题的第一瞬间,我会想到最传统的方法:

      先将输入的数组元素进行去重,arr[i]  和 arr[i+1]进行比较,如果两个数相等,则将第一个数(arr[i])置为0,然后继续循环比较数组中的剩下元素,之后利用排序方法排序后,输出不为0的数组元素。

代码如下:

#include
void bubble(int arr[], int n)            //冒泡排序
{
    int i = 0;
    int j = 0;
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n- 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int arr[100] = { 0 };

    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }


    int sz = sizeof(arr) / sizeof(arr[0]);  //数组元素个数
    bubble(arr, n);                        // 先排序再判断或者  先判断再排序都行
  for (i = 0; i < n; i++)
    {
        if (arr[i] == arr[i + 1])
        {
            arr[i] = 0;
        }
    }
   for (i = 0; i < n; i++)
    {
        if (arr[i] != 0)
        {
            printf("%d", arr[i]);
        }
    }
}

2.桶排序的方法!

#include
int main()
{
    int n=0;          
    int temp=0;         //给桶标号

    scanf("%d",&n);
    int arr[1001]={0};  //数组的个数即 桶的个数

    for(int i=0;i

觉得怎么样?学会了吗?

C语言之——入门必刷题(3)_第4张图片不熟的话,再练一道吧!

 

2.查找数字出现的次数

C语言之——入门必刷题(3)_第5张图片

1.  第一种传统的方法就是直接遍历数组元素,遇到查找元素就个数加一。

2. 桶排序方法!! 

    代码如下:

#include
int main()
{
    int n=0;            //元素个数
    scanf("%d",&n);
    int arr[100]={0};   //桶的总数100,并且每个桶初始化为0

    int temp = 0;       //为桶标号 

    for(int i=0;i

做到这里,我相信你也学会了吧!可以再去反复琢磨琢磨,思考解题的过程和思路哦!


 

总结

相信大家看完以后,也看懂了!

           那么这期的C语言入门刷题基础知识点就到这里啦!!

           是不是觉得不够,内容太少?

那么就期待下期我们再见吧!!记得三连哦,别到时候找不到俺!C语言之——入门必刷题(3)_第6张图片

你可能感兴趣的:(c语言,开发语言)