暑假超越计划练习题(8)

简介: 暑假超越计划练习题(8)

1.判断在n个整数中,x出现几次!


给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。


输入描述:

共3行

第一行,一个整数,表示n(1 <= n <= 100)。

第二行,共输入n个整数,两个整数之间用空格分隔。

第三行,输入一个整数,表示要查找的整数x。


输出描述:

一行,表示整数x出现的次数。


示例1

输入:


5

1 1 2 1 3

1

输出:


3

代码为:


#include <stdio.h>
int main ()
{
    int n=0;
    int arr[100]={0};
    scanf("%d",&n);
    int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int k=0;
    scanf("%d",&k);
    int count=0;
    for(i=0;i<n;i++)
    {
        if(arr[i]==k)
        {
            count++;
        }
    }
    printf("%d\n",count);
    return 0;
}


此段代码重要的部分还是在于:for 循环与  if语句连用的片段,只要理解了这段代码,其他的便就无所畏惧!


代码的运行结果为:


0a2653c851af460fa595bd959398a8f1.png


2.筛选法求素数


描述

用筛选法求n以内的素数。筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0 的数即为素数。


输入描述:

多组输入,每行输入一个正整数(不大于100)。


输出描述:

针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔,


第二行,输出数组中2之后被清0 的个数。每行输出后换行。


示例1

输入:


20

输出:


2 3 5 7 11 13 17 19

11


下面请看笔者代码:


#include <stdio.h>
int main()
{
    int n = 0;
    int arr[100] = { 0 };
    //多组输入
    while (scanf("%d", &n)==1)
    {
        //将2~n的数存起来
        int i = 0; //循环变量
        for (i = 2; i <= n; i++)
        {
            arr[i] = i;
        }
        //开始筛选
        for (i = 2; i <= n; i++)
        {
            int j = 0;
            for (j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    arr[i] = 0;
                }
            }
        }
        int cnt = 0;
        //输出
        for (i = 2; i <= n; i++)
        {
            if (arr[i] != 0)
            {
                printf("%d ", arr[i]);
            }
            else
            {
                cnt++;
            }
        }
        printf("\n%d\n", cnt);
    }
    return 0;
}

在上述代码中,首先是判断是不是素数,这就需要:


 

for (i = 2; i <= n; i++)
        {
            int j = 0;
            for (j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    arr[i] = 0;
                }
            }
        }

双重for循环来进行控制if语句的判断,如果不是素数,则进行:arr[i] = 0;操作,目的是区分素数与质数,为后面统计做好基础!题目要求,对2后面清零的数字统计,所以就用到了后面的cnt++,来进行统计计算,最后在输出!


代码的运行结果为:


6de278e6d6694ce5bb08e7e842b7e74b.png


到此:笔者的暑假超越计划练习题(8)就已经结束!感谢读者!


相关文章
|
6月前
|
存储 算法 Serverless
22年+21年 计算机能力挑战赛初赛C语言程序题 题解
22年+21年 计算机能力挑战赛初赛C语言程序题 题解
150 2
|
6月前
|
机器学习/深度学习 存储 算法
机器学习(西瓜书)简答题总结
机器学习(西瓜书)简答题总结
46 0
|
算法 搜索推荐 程序员
程序员会使用的十个基础算法
作为一名程序员,掌握各种算法可以帮助我们解决各种复杂的问题,提高代码的效率和性能,同时也是面试中常被考察的重要内容之一。无论是开发新的软件应用、优化现有的算法逻辑还是解决各类计算问题,算法都是不可或缺的工具。因此,程序员必须掌握一系列常用的算法,以确保能够高效地编写出稳定、功能强大的软件。
|
人工智能 算法 C++
【每日算法Day 88】超越妹妹教你如何做这道排序题
【每日算法Day 88】超越妹妹教你如何做这道排序题
|
人工智能 搜索推荐 JavaScript
「数学天才」陶哲轩:GPT-4无法攻克一个未解决的数学问题,但对工作有帮助
「数学天才」陶哲轩:GPT-4无法攻克一个未解决的数学问题,但对工作有帮助
195 0
暑假超越计划练习题(7)
暑假超越计划练习题(7)
136 0
暑假超越计划练习题(7)
|
C语言
暑假超越计划练习题
暑假超越计划练习题
91 0
暑假超越计划练习题
暑假超越计划练习题(3)
暑假超越计划练习题(3)
99 0
暑假超越计划练习题(3)
|
C语言 C++
暑假超越计划练习题(5)
暑假超越计划练习题(5)
82 0
暑假超越计划练习题(5)
|
C语言
暑假超越计划练习题(4)
暑假超越计划练习题(4)
94 0
暑假超越计划练习题(4)