C语言网刷题记录

news2024/12/28 4:11:19

作者:会敲代码的Steve

座右铭:博学笃志,切问静思。

大家好久不见啊,一看时间我已经好久没发文章了,最近在刷OJ题和学习;就没那么多心思把时间花在写文章上了,我对此感到很抱歉,本文呢,想总结一下自己最近做过的题目,分享心得。

正文起:

目录

作者:会敲代码的Steve

1. 2830: 数字统计

2. 2240: 蓝桥杯算法训练-删除数组零元素

3.  数字的处理与判断

4.1036 :指针传址调用 -C语言

5.  2804: 与指定数字相同的数的个数

6. 2798: 整数序列的元素最大跨度值

7.2799: 奥运奖牌计数

8. 2819: 数字反转

9.2883: 矩阵加法

10.  2823: 计算分数加减表达式的值


1. 2830: 数字统计

 分析:

题目是要求数字2出现的次数,那我们可以对大于9的数字取出个位和十位来判断是否是2,如果是2的话,那计数器就+1;具体呢就这个逻辑,那我们来看代码怎么实现。

#include<stdio.h>
int main(){
    int n,x,i,count=0,t;
    scanf("%d %d",&x,&n);
    for(;x<=n;x++){
        int j=x;
        while(j>0){
            t=j%10;
            if(t==2)
                count++;
            j=j/10;
        }
    }
    printf("%d",count);
}

这道题就写完了。 

2. 2240: 蓝桥杯算法训练-删除数组零元素

 分析:

题目要求是定义一个函数Compactlntegers,来删除数组中的0,让元素向前面移动;知道条件,那就很好办了,先定义函数Compactlntegers,分别传入数组和数组的长度,然后进行遍历;如果是0的话后面的数字就等于前面的数字(覆盖),同时不等于0时计数器+1,函数返回值就是删除0后数组元素的数量,主函数内输出结果,这题就做完了。

#include <stdio.h>
void CompactIntegers();
int main() {
   int t = 0;
  int a[100] = {0};
  int b[100] = {0};
  int n, count = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
    if(a[i]!=0)
    {
       a[t]=a[i];
       t++;
    }
  }
    printf("%d\n",t);
   for(int i = 0;i<t;i++)
   {
      printf("%d ",a[i]);
   }
  
    
}

3.  数字的处理与判断

 分析:

题目很简单,就是分别求几位数和分离每一位数字,然后就是逆序打印数字。

我们上代码:

#include<stdio.h>
int count(int y);
void print(int x);
void func(int z);
int main()
{
    int a;
    scanf("%d",&a);
     printf("%d\n",count(a));
     print(a);
     printf("\n");
     func(a);
     return 0;
}
void print(int x)
{
   if(x>9)
   {
       print(x/10);
   }
   printf("%d ",x%10);
}
int count(int y)
{
    int count = 0;
while(y!=0)
    {
        y= y/10;
        count++;//这里是求几位数
    }
   return count;
}
void func(int z)
{
   if(z<10)
   {
       printf("%d",z);
       return;
   }
  printf("%d",z%10);
  func(z/10);
}

 

4.1036 :指针传址调用 -C语言

 分析:

这道题主要是需要会指针的传引用,指针交换变量,上代码!

#include<stdio.h>
int main()
{
     int swap(int *a,int *b);
     int a,b;
     scanf("%d%d",&a,&b);
     int *p1=&a;
     int *p2=&b;
     swap(p1,p2);
     printf("%d %d",a,b);
     return 0;
}
int swap(int *a,int *b)
{
    int tmp;
    tmp=*a;
    *a=*b;
    *b=tmp;
    return 0;
}

不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参指针变量所知变量的值 

5.  2804: 与指定数字相同的数的个数

 分析:

这道题可以很好的用数组来做,首先按照题目要求输入N,再输入N个数字;在for循环内遍历,如果是指定的数字m那么计数器就不断+1,直到遍历完整个数组为止。

#include<stdio.h>
int main()
{
   int arr[100]={0};
   int n,i;
   int cnt,count,cut;
   cnt = 0,count = 0,cut = 0;
   scanf("%d",&n);
   for(i = 0;i<n;i++)
   {
       scanf("%d",&arr[i]);
   }
   for(i = 0;i<n;i++)//这里不是固定的
   {
       if(arr[i]==1)
       {
         cnt++;
       }
       if(arr[i]==5)
       {
           count++;
       }
       if(arr[i]==10)
       {
           cut++;
       }
   }
   printf("%d\n%d\n%d\n",cnt,count,cut);
  
}

6. 2798: 整数序列的元素最大跨度值

 分析:

这道题依旧是数组来解决,我们首先定义最大值(max)和最小值(min),然后把这两个值定义为数组第一个元素,在数组内遍历,如果当前数字比max或min小那么max和min就是该数字。结果相减即可得到。我们来看代码:

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define N 1000
int main() {
  int arr[N] = {0};
  int n, max, min;
  int i = 0;
  int sum = 0;
  scanf("%d", &n);
  for (i = 0; i < n;i++) {
    scanf("%d", &arr[i]);
  }
  max = 0, min = 0;
  max = arr[0];
  min = arr[0];
  for (i = 0; i < n; i++) {
    if (max<arr[i]) {
      max = arr[i];
    }
    if (min>arr[i]) {
      min = arr[i];
    }
  }
  sum = max - min;
  printf("%d",sum);
}

7.2799: 奥运奖牌计数

分析:

这次就用不上数组了哦,定义三个变量输入,四个sum,依次相加输出就做完了,但是不能忽略的一点是不要忘记初始化变量。

#include<stdio.h>
#include<math.h>
int main()
{
  int n;
   int a,b,c;
   a = 0,b = 0,c = 0;
  int sum1,sum2,sum3;
  sum1 = 0,sum2 = 0,sum3 = 0;
  int sum = 0;
  scanf("%d",&n);
   for(int i = 1;i<=n;i++)
   {
      scanf("%d%d%d",&a,&b,&c);
      sum1+=a;
      sum2+=b;
      sum3+=c;
   }
   printf("%d %d %d %d\n",sum1,sum2,sum3,sum1+sum2+sum3);
return 0;
}

8. 2819: 数字反转

 分析:

这道题主要是分解每一位数字然后再次逆序打印出来,具体用while循环实现。

#include<stdio.h>
void kr(int n);
int main()
{
    
    int n;
    scanf("%d",&n);
    kr(n);
}
void kr(int n)
{
  int s;
    s = 0;
    while(n!=0){
s=s*10+n%10;
 
n=n/10;
 
}
    printf("%d",s);
 
}

9.2883: 矩阵加法

 分析:

定义三个数组,两个数组全部输入完成后相加后赋值个第三个数组,之后打印即可。

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

10.  2823: 计算分数加减表达式的值

 

分析:

重点在于我们需要定义一个变量来控制正负,每循环一次就颠倒一次正负。

下面是代码:

#include<stdio.h>
int main()
{
  int i,j;
  int  sign = 1;
  double sum = 0;
  scanf("%d",&j);
  for(i = 1;i<=j;i++)
  { 
    
     sum+=(double)sign*1/i;
     sign = -sign;
  }
   printf("%.4lf",sum);
  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/132966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

int8,FLOPS,FLOPs,TOPS 等具体含义

1、定义 算力的计量单位FLOPS&#xff08;Floating-point operations per second&#xff09;&#xff0c;FLOPS表示每秒浮点的运算次数。具体使用时&#xff0c;FLOPS前面还会有一个字母常量&#xff0c;例如TFLOPS、PFLOPS。这个字母T、P代表次数&#xff0c;T代表每秒一万亿…

Linux学习笔记——MySQL数据库管理系统安装部署

5.1、MySQL数据库管理系统安装部署 5.1.1、简介 1、MySQL简介 MySQL数据库管理系统&#xff08;后续简称MySQL&#xff09;&#xff0c;是一款知名的数据库系统&#xff0c;其特点是&#xff1a;轻量、简单、功能丰富。 MySQL数据库可谓是软件行业的明星产品&#xff0c;无…

xilinx ZYNQ 7000 AXI GPIO

.0AXI GPIO 第一部分 PS 和 PL之间的通讯有一个接口称为AXI。AXI总线具体的内容这边不去深究&#xff0c;可以理解为一种特殊协议的通讯方式。 AXI GPIO是什么意思&#xff1f; PL是FPGA它可以做成任何你想要的东西&#xff0c;做一个GPIO外设当然是可以的。 如上图所示&…

DoIP协议从入门到精通——通信建立

在DoIP专栏中,关于DoIP文章,主要讲述从车辆物理连接、车辆声明、车辆通信激活(Routine Activation)和诊断通信几个步骤。 本文介绍了Tester与车辆获取物理连接、车辆声明自身信息后接下来需要操作的就是本文所要分享的内容:Tester与车辆控制器的通信建立。 一、通信模式…

记一次堆外内存泄漏分析

文章目录1. 背景2. JVM 内存分布与分析2.1 JVM 内存分布2.2 堆外内存泄漏分析思路2.3 服务器 JVM 参数配置及实际内存分布2.4 JVM native 内存查看2.5 手动触发 Full GC3. 问题排查经历3.1 定位内存泄漏的位置及初步猜想1&#xff09;定位 RES 区域存在内存泄漏2&#xff09;分…

寒假每日一题W1D1——孤独的照片

题目描述 Farmer John 最近购入了 N 头新的奶牛&#xff0c;每头奶牛的品种是更赛牛&#xff08;Guernsey&#xff09;或荷斯坦牛&#xff08;Holstein&#xff09;之一。 奶牛目前排成一排&#xff0c;Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。 然而&…

一本通 1267:【例9.11】01背包问题(详细代码)

经典01背包问题 这里给你3种方法 目录 DFS 思路&#xff1a; 代码&#xff1a; DFS记忆化 思路&#xff1a; 代码&#xff1a; 动态规划 思路&#xff1a; 代码&#xff1a; DFS 时间复杂度 &#xff1a;O(2^n) 思路&#xff1a; DFS求出所有选法&#xff0c;再用…

Maven 之 依赖管理

目录 1、依赖传递 小案例&#xff1a; 2、可选依赖 3、 排除依赖 4、可选依赖和排除依赖的区别 我们开发一个工程需要用到大量得jar包&#xff0c;而这些jar 包就是我们所说得依赖&#xff0c;一个项目可以配置多个依赖。 1、依赖传递 我们来看一下今天用来演示的工程。…

Linux性能学习(1.4):CPU_如何查看CPU上下文切换参数

文章目录1 系统总体上下文参数2 进程的上下文切换参数3 其它参考资料&#xff1a;vmstat&#xff1a;一个标准的报告虚拟内存统计工具 在前面大致了解了上下文切换的相关知识&#xff0c;那么如何在系统中查看上下文切换相关的参数&#xff1f; 1 系统总体上下文参数 使用vm…

人工势场法路径规划算法(APF)

本文主要对人工势场法路径规划算法进行介绍&#xff0c;主要涉及人工势场法的简介、引力和斥力模型及其推导过程、人工势场法的缺陷及改进思路、人工势场法的Python与MATLAB开源源码等方面 一、人工势场法简介 人工势场法是由Khatib于1985年在论文《Real-Time Obstacle Avoidan…

WPF使用触发器需要注意优先级问题

总目录 文章目录总目录前言一、问题开始二、问题说明三、问题订正总结前言 WPF使用触发器需要注意优先级问题 一、问题开始 现在有个需求&#xff1a; 初始状态&#xff08;未选中&#xff09;的时候&#xff0c;CheckBox的Content 为 “乒乓球”&#xff0c;然后选中之后&am…

python机器学习《基于逻辑回归的预测分类》

前言&#xff1a; 本文所有代码均在阿里天池实验室运行&#xff0c;本机的jupyter notebook也可运行。除此之外&#xff0c;还需要导入numpy,matplotlib,sklearn,seaborn包。每期文章前面都会有环境搭建说明。文中的讲解知识点均是按照从上往下讲解&#xff0c;将一些平常未接触…

⼯⼚⽅法模式

⼯⼚⽅法模式 ⼯⼚⽅法模式&#xff0c;属于创建者模式中的一种&#xff0c;这类模式提供创建对象的机制&#xff0c; 能够提升已有代码的灵活性和可复⽤性。 创建者模式包括&#xff1a;⼯⼚⽅法、抽象⼯⼚、⽣成器、原型、单例&#xff0c;这5类。 1.⼯⼚⽅法模式介绍 ⼯⼚…

LaoCat带你认识容器与镜像(二【一章】)

系列二章&#xff0c;祝大家新的一年事事顺心&#xff0c;想要的一定都实现。 本章内容 使用Docker镜像。 本文实操全部基于Ubuntu 20.04 一、使用Docker镜像 镜像&#xff08;image&#xff09;是Docker三大核心概念中最重要的&#xff0c;Docker运行容器前需要本地存在对应得…

在wsl下开发T113的主线linux(5)-构建ubi文件系统

接下来是构建文件系统&#xff0c;这里使用最新的buildroothttps://buildroot.org/download.htmlhttps://buildroot.org/download.html tar xf buildroot-2022.11.tar.gz cd buildroot-2022.11 make menuconfig 配置目标指令集类型 配置外部自定义编译器 配置生成文件系统类型…

数据结构和算法--算法与数据结构的概述、简单排序

目录 算法 算法概述 算法复杂度 数据结构 数据结构的概述 物理结构 逻辑结构 简单排序 1.选择排序 1.1算法描述 1.2算法实现 2冒泡排序 2.1算法描述 2.2算法实现 3插入排序 3.1算法描述 3.2算法实现 三种算法的比较 算法 算法概述 算法是一系列程序指令&am…

回溯算法题型

目录 一组合总和 二组合总和 三子集 四全排列 五解数独 一组合总和 题目描述&#xff1a; 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组…

ArcGIS基础:提取道路中心线

本实验为对道路路面数据进行中心线提取 以路边两侧边界为准&#xff0c;运用等分的办法实现道路中心线提取&#xff0c;原始数据如下所示&#xff08;来源于网络&#xff09;。 道路顶端有一些圆弧段的部分&#xff0c;需要把其去除。 首先要做的是面转线操作&#xff0c;如下…

HashMap解读

1.简介 HashMap &#xff0c;是一种散列表&#xff0c;用于存储 key-value 键值对的数据结构&#xff0c;一般翻译为“哈希表”&#xff0c;提供平均时间复杂度为 O(1) 的、基于 key 级别的 get/put 等操作。 2.哈希表结构 哈希表结构为数组&#xff0c;链表和红黑树。如图 …

已解决+ FullyQualifiedErrorId : UnauthorizedAccess

已解决无法加载文件 E:\day_01\Scripts\activate.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的about_Execution_Policies。 CategoryInfo: SecurityError: &#xff08;:&#xff09; [ ]…