当前位置: 首页 > news >正文

二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号

目录

一、程序填空📝 --- 矩阵主、反对角线元素之和

题目📃

分析🧐

二、程序修改🛠️ --- 二分法求方程根

题目📃

分析🧐        

三、程序设计💻 --- 处理字符串中 * 号

题目📃

分析🧐

今日题的总结


前言
本文讲解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号

🏠我的主页:我的主页
📚系列专栏:系列专栏

一、程序填空📝 --- 矩阵主、反对角线元素之和

难度:⭐

题目📃

在此程序中,函数 fun 的功能是:计算 N×N 矩阵的主对角线元素和反对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反对角线元素中的值。

例如,若 N = 3,有下列矩阵:
1 2 3
4 5 6
7 8 9

首先累加 1、5、9,然后累加 3、5、7,函数返回值为 30。

代码如下: 
在1️⃣2️⃣3️⃣处填空

#include    <stdio.h>
#define    N    4
int fun(int  t[][N], int  n)
{  int  i, sum;
/**********found**********/1️⃣;for(i=0; i<n; i++)
/**********found**********/sum+= 2️⃣;for(i=0; i<n; i++)
/**********found**********/sum+= t[i][n-i-3️⃣] ;return sum;
}
void main()
{  int  t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;printf("\nThe original data:\n");for(i=0; i<N; i++){  for(j=0; j<N; j++)  printf("%4d",t[i][j]);printf("\n");}printf("The result is:  %d",fun(t,N));
}

分析🧐

这道题相对简单

  1. 填写:sum = 0
    由下方的sum的使用可以知道
    这个sum没有赋初值
    又因为是sum是用来做累加求和
    所以初始值是0
  2. 填写:t[ i ][ i ]
    由题意可以知道,这里有两个for循环
    这里的第一个就是累加从左往右(主对角线)的长度
    可以看出规律,都是行列相等的
  3. 填写:1
    这个循环,是来实现反对角线的(从右往左)
    可以写一下反对角线的各个元素,就可以得出规律了

 

解答代码如下:

#include    <stdio.h>
#define    N    4
int fun(int  t[][N], int  n)
{  int  i, sum;
/**********found**********/1️⃣sum = 0;for(i=0; i<n; i++)
/**********found**********/2️⃣sum+= t[i][i];for(i=0; i<n; i++)
/**********found**********/3️⃣sum+= t[i][n-i-1] ;return sum;
}
void main()
{  int  t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;printf("\nThe original data:\n");for(i=0; i<N; i++){  for(j=0; j<N; j++)  printf("%4d",t[i][j]);printf("\n");}printf("The result is:  %d",fun(t,N));
}

二、程序修改🛠️ --- 二分法求方程根

难度:⭐

题目📃

在此程序中,函数 fun 和 funx 的功能是:用二分法求方程 2x³ - 4x² + 3x - 6 = 0 的一个根,并要求绝对误差不超过 0.001
例如,若给 m 输入 - 100,n 输入 90,则函数求得的一个根为 2.000。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件 modi1.c 中。
不要改动 main 函数,不得增行或删行,也不得更改程序的结构!

代码如下:
在代码中找出2个错误并修改

#include <stdio.h>
#include <math.h>
double funx(double  x)
{   return(2*x*x*x-4*x*x+3*x-6);  }
double fun( double  m, double  n)
{
/************found************/int  r;r=(m+n)/2;
/************found************/while(fabs(n-m)<0.001){   if(funx(r)*funx(n)<0)  m=r;else  n=r;r=(m+n)/2;}return  r;
}
void main( )
{  double  m,n, root;printf("Enter  m  n :  \n"); scanf("%lf%lf",&m,&n);root=fun( m,n );printf("root = %6.3f\n",root);
}

分析🧐        

这道题的意思难以理解,但是不要被这个文字描述吓到了,看他在程序里挖的错,都是一眼能够看出来的

  1. 第8行改为
    double  r;
    函数的返回值是double类型
    而最后是返回r的,所以很明显 i 是double
  2. 第11行改为
    while(fabs(r)<0.001)
    由题目可知,绝对值不超过0.001
    所以是小于0.001

解答代码如下:

#include <stdio.h>
#include <math.h>
double funx(double  x)
{   return(2*x*x*x-4*x*x+3*x-6);  }
double fun( double  m, double  n)
{
/************found************/1️⃣ double  r;r=(m+n)/2;
/************found************/2️⃣ while(fabs(r)<0.001){   if(funx(r)*funx(n)<0)  m=r;else  n=r;r=(m+n)/2;}return  r;
}
void main( )
{  double  m,n, root;printf("Enter  m  n :  \n"); scanf("%lf%lf",&m,&n);root=fun( m,n );printf("root = %6.3f\n",root);
}

三、程序设计💻 --- 处理字符串中 * 号

难度:⭐⭐⭐

题目📃

在此程序中,规定输入的字符串中只包含字母和 * 号。
编写函数 fun,其功能是:除了字符串前导和尾部的号外,将串中其它的 * 号全部删除。形参 h 已指向字符串中第一个字母,形参 p 指向字符串的中最后一个字母。在编写函数时,不得使用 C 语言提供的字符串函数。

 

例如,若字符串中的内容为 ******ABC*DEFG******,删除后,字符串中的内容应当是:******ABCDEFG******。在编写函数时,不得使用 C 语言提供的字符串函数。

 

注意:部分源程序在文件 prog1.c 中。
请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句

代码如下:
在fun函数中编写 

#include <stdio.h>
void  fun( char *a, char *h,char *p )
{}void main()
{  char  s[81],*t, *f;printf("Enter a string:\n");gets(s);t=f=s;while(*t)t++;t--;while(*t=='*')t--;while(*f=='*')f++;fun( s , f,t );printf("The string after deleted:\n");puts(s);
}

分析🧐

可以先看main函数的功能,就是将t指针跳过后面的*号,还有将f指针是跳过前面的*号
而后在fun函数中,h指针相当于指向在左边第一个非*号地址的位置
p指针是指向右边非*号地址的位置
这也就相当于是帮我们省去了考虑前后导零的情况了

之后就可以想到覆盖,当h指针是*号,就覆盖它
如果不是*号就向前走

解答代码如下:

#include <stdio.h>
void  fun( char *a, char *h,char *p )
{//p指向最右边非星号的位置//h指向最左边非星号的位置int j;while(h < p){//让flag指向h,代替h指针移动//如果直接让h指针移动的话,就只能执行一次了char *flag = h;if(*flag == '*'){//如果是*号,就将其覆盖for(j = 0; flag[j] != '\0'; j++)flag[j] = flag[j + 1];//覆盖完后,长度也要减少一个,所以p--p--;//如果不是*号的话h指针就向前移动}else h++;}
}void main()
{  char  s[81],*t, *f;printf("Enter a string:\n");gets(s);t=f=s;while(*t)t++;t--;while(*t=='*')t--;while(*f=='*')f++;fun( s , f,t );printf("The string after deleted:\n");puts(s);
}

今日题的总结

如果遇到题目看不懂,一定不要慌,先看看代码中能不能找出解出这个空的条件

希望本文能够帮助到你😊

相关文章:

二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号

目录 一、程序填空&#x1f4dd; --- 矩阵主、反对角线元素之和 题目&#x1f4c3; 分析&#x1f9d0; 二、程序修改&#x1f6e0;️ --- 二分法求方程根 题目&#x1f4c3; 分析&#x1f9d0; 三、程序设计&#x1f4bb; --- 处理字符串中 * 号 题目&#x1f…...

利用 Python 爬虫获取按关键字搜索淘宝商品的完整指南

在电商数据分析和市场研究中&#xff0c;获取商品的详细信息是至关重要的一步。淘宝作为中国最大的电商平台之一&#xff0c;提供了丰富的商品数据。通过 Python 爬虫技术&#xff0c;我们可以高效地获取按关键字搜索的淘宝商品信息。本文将详细介绍如何利用 Python 爬虫技术获…...

什么是幂等性

幂等性&#xff08;Idempotence&#xff09;是一个在数学、计算机科学等多个领域都有重要应用的概念&#xff0c;下面从不同领域为你详细介绍其含义。 数学领域 在数学中&#xff0c;幂等性是指一个操作或函数进行多次相同的运算&#xff0c;其结果始终与进行一次运算的结果相…...

群晖NAS如何通过WebDAV和内网穿透实现Joplin笔记远程同步

文章目录 前言1. 检查群晖Webdav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar工具4. 创建Webdav公网地址5. Joplin连接WebDav6. 固定Webdav公网地址7. 公网环境连接测试 前言 在数字化浪潮的推动下&#xff0c;笔记应用已成为我们记录生活、整理思绪的重要工具。Joplin&…...

示例:JAVA调用deepseek

近日&#xff0c;国产AI DeepSeek在中国、美国的科技圈受到广泛关注&#xff0c;甚至被认为是大模型行业的最大“黑马”。在外网&#xff0c;DeepSeek被不少人称为“神秘的东方力量”。1月27日&#xff0c;DeepSeek应用登顶苹果美国地区应用商店免费APP下载排行榜&#xff0c;在…...

【提示工程】:如何有效与大语言模型互动

随着人工智能技术的快速发展,大语言模型(LLM)如 GPT 系列在各类任务中的应用越来越广泛。从文本生成到代码编写,从数据分析到内容创作,这些模型展现出了强大的能力。然而,要充分发挥大语言模型的潜力,关键在于如何设计高质量的提示词(Prompts)。这门技术被称为提示工程…...

操作系统—经典同步问题

补充 互斥信号量mutex初值均为1 同步信号量根据问题实际描述自己设计 生产者-消费者问题 问题描述&#xff1a;一组生产者进程和一组消费者进程 共享一个初始为空、大小为n的缓冲区。&#xff08;缓冲区&#xff1a;临界资源&#xff09; 只有缓冲区没满时&#xff0c;生产者…...

profinet工业通信协议网关:提升钢铁冶炼智能制造效率的利器

工业通信协议网关profinet转ethercat&#xff08;稳联技术WL-PN-ECATM&#xff09;在钢铁冶炼生产线中的智能应用实践 在现代钢铁冶炼生产中&#xff0c;复杂的设备互联和数据传输对生产效率和质量控制至关重要。本案例详细阐述了某大型钢铁集团通过工业通信协议网关实现生产线…...

Vue基础:计算属性(描述依赖响应式状态的复杂逻辑)

文章目录 引言computed() 方法期望接收一个 getter 函数可写计算属性:计算属性的 Setter计算属性的缓存机制调试 Computed引言 推荐使用计算属性来描述依赖响应式状态的复杂逻辑 computed 函数:它接受 getter 函数并为 getter 返回的值返回一个不可变的响应式 ref 对象。 c…...

leetcode:1534. 统计好三元组(python3解法)

难度&#xff1a;简单 给你一个整数数组 arr &#xff0c;以及 a、b 、c 三个整数。请你统计其中好三元组的数量。 如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件&#xff0c;则认为它是一个 好三元组 。 0 < i < j < k < arr.length|arr[i] - arr[j]| &l…...

BUU27 [SUCTF 2019]CheckIn1

题目是上传文件 直接上传muma.jpg还不成功&#xff1a; 好吧&#xff0c;那做一个图片马上去&#xff0c;换马以后发现还是不行&#xff0c;呃啊啊啊啊 干啥啥不行&#xff0c;搜wp第一名&#xff0c;哎 新面孔&#xff1a;exif_imagetype 函数在 PHP 中用于检测一个文件是否为…...

unity学习30:Audio Source, Audio clip 音效和音乐

目录 1 音乐相关必须要有 Audio listener 和Source 2 Scene里必须要有 Audio listener 3 Audio Source 3.1 Audio Source 就是音源&#xff0c;可播放的音乐clip 分类 3.2 创建Audio Source 3.3 各种属性 3.4 3D sound Settings 4 使用脚本来播放声音 4.1 声明AudioC…...

【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)

目录 1.QLineEdit 单行输入框 例&#xff1a;输入个人信息&#xff0c;通过按钮提交 例&#xff1a;为输入框设置验证器&#xff0c;检查输入的电话 例&#xff1a;验证两次输入的密码是否一致 例&#xff1a;是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPl…...

openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能

本文记录了openEuler22.03LTS将docker升级由18.09.0升级至26.1.4的过程&#xff08;当前docker最新版本为27.5.1&#xff0c;生产环境为保障稳定性&#xff0c;选择升级到上一个大版本26的最新小版本&#xff09;。 一、现有环境 1、系统版本 [rootlocalhost opt]# cat /etc…...

深入解析:如何利用 Java 爬虫按关键字搜索淘宝商品

在电商领域&#xff0c;通过关键字搜索商品是常见的需求。无论是商家分析竞争对手&#xff0c;还是消费者寻找心仪的商品&#xff0c;获取搜索结果中的商品信息都至关重要。本文将详细介绍如何利用 Java 爬虫按关键字搜索淘宝商品&#xff0c;并提供完整的代码示例。 一、Java…...

STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI

1 引言 STM32 微控制器在嵌入式领域应用广泛&#xff0c;因为它性能不错、功耗低&#xff0c;还有丰富的外设&#xff0c;像工业控制、智能家居、物联网这些场景都能看到它的身影。与此同时&#xff0c;人工智能技术发展迅速&#xff0c;也逐渐融入各个行业。 把 AI 部署到 STM…...

C++ Primer 成员访问运算符

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接

全新的BG22L为常见蓝牙设备提供强大的安全性和处理能力&#xff0c;而BG24L支持先进的AI/ML加速和信道探测功能 2025年2月6日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#x…...

java后端开发面试常问

面试常问问题 1 spring相关 &#xff08;1&#xff09;Transactional失效的场景 <1> Transactional注解默认只会回滚运行时异常&#xff08;RuntimeException&#xff09;&#xff0c;如果方法中抛出了其他异常&#xff0c;则事务不会回滚&#xff08;数据库数据仍然插…...

‌双非硕士的抉择:自学嵌入式硬件开发还是深入Linux C/C++走软开?

今天给大家分享的是一位粉丝的提问&#xff0c;双非硕研一是自学嵌入式走偏硬件还是说深入学习Linuxc/c走软开呢&#xff1f; 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 粉丝提问&#xff1a; 老师好&#xff…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...