C语言---程序设计基础练习题目3

对之前的练习和文章进行回顾,并在此文章中解决新问题
如在题目中有看不明白的地方
可跳转我的主页去查看
Wanyu的主页

以下题目是留在文章中的练习:(点击即可查看)
Wanyu C语言—程序设计练习题目及学习方法2

习题1:计算正整数1-100中的奇数之和和偶数之和
#include <stdio.h>int main() {int sum_odd = 0, sum_even = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum_even += i;} else {sum_odd += i;}}printf("1-100之间奇数之和为:%d\n", sum_odd);printf("1-100之间偶数之和为:%d\n", sum_even);return 0;
}

解释:

  • 初始化变量: sum_odd 和 sum_even 分别用来存储奇数和偶数的和,初始值为0。
  • 循环遍历: 使用 for 循环遍历1到100之间的所有整数。
  • 判断奇偶: 使用 % 取余运算符判断当前数字 i 是奇数还是偶数。
  • 累加: 如果是偶数,则将 i 加到 sum_even 中;如果是奇数,则将 i 加到 sum_odd 中。
习题2:输入10个数,统计并输出整数、负数和0的个数
#include <stdio.h>int main() {int num, positive = 0, negative = 0, zero = 0;for (int i = 1; i <= 10; i++) {printf("请输入第%d个数:", i);scanf("%d", &num);if (num > 0) {positive++;} else if (num < 0) {negative++;} else {zero++;}}printf("正数个数:%d\n", positive);printf("负数个数:%d\n", negative);printf("0的个数:%d\n", zero);return 0;
}

解释:

  • 初始化: positive、negative 和 zero 分别用来存储正数、负数和0的个数,初始值为0。
  • 输入: 使用 for 循环,提示用户输入10个整数。
  • 分类统计: 根据输入的数字是正数、负数还是0,分别将对应的计数器加1。
习题3:打印并输出所有的水仙花数
#include <stdio.h>int main() {int i, a, b, c;for (i = 100; i <= 999; i++) {a = i / 100;b = (i % 100) / 10;c = i % 10;if (i == a * a * a + b * b * b + c * c * c) {printf("%d是水仙花数\n", i);}}return 0;
}

解释:

  • 循环遍历: 使用 for 循环遍历100到999之间的所有三位数。
  • 分解: 将三位数 i 分解成百位数 a、十位数 b 和个位数 c。
  • 判断: 判断 i 是否等于 a 的三次方加上 b 的三次方加上 c 的三次方。
习题4:将一个数组中的元素进行逆序存放,9,8,7,6,5,4,3,2,1

思路:利用双指针法,
一个指针从数组开头开始,
另一个从末尾开始,
依次交换这两个指针所指的元素,
直到它们相遇或交错。

#include <stdio.h>void reverseArray(int arr[], int size) {int temp;for (int i = 0; i < size / 2; i++) {temp = arr[i];arr[i] = arr[size - i - 1];arr[size - i - 1] = temp;}
}int main() {int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};int size = sizeof(arr) / sizeof(arr[0]);reverseArray(arr, size);for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;
}

大家需认真去读程序,
去思考此代码中涉及的知识点,
这里帮助大家快速复习
WanyuC语言—函数指针基础总结万字(4)

习题5:在一个升序数组中插入一个数,使数组仍然保持升序排列

思路:找到插入位置,
将后续元素右移一位,
插入新元素。

#include <stdio.h>void insertAndSort(int arr[], int *size, int num) {int i;for (i = *size - 1; (i >= 0 && arr[i] > num); i--) {arr[i + 1] = arr[i];}arr[i + 1] = num;(*size)++;
}int main() {int arr[10] = {1, 3, 5, 7, 9}; // 假设已有 5 个元素int size = 5;int num = 6;insertAndSort(arr, &size, num);for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;
}
习题6:合并两个降序数组,使合并后的数据仍然保持降序排列
#include <stdio.h>void mergeArrays(int arr1[], int size1, int arr2[], int size2, int result[]) {int i = 0, j = 0, k = 0;while (i < size1 && j < size2) {if (arr1[i] > arr2[j]) {result[k++] = arr1[i++];} else {result[k++] = arr2[j++];}}while (i < size1) {result[k++] = arr1[i++];}while (j < size2) {result[k++] = arr2[j++];}
}int main() {int arr1[] = {9, 7, 5, 3, 1};int arr2[] = {8, 6, 4, 2, 0};int size1 = sizeof(arr1) / sizeof(arr1[0]);int size2 = sizeof(arr2) / sizeof(arr2[0]);int result[size1 + size2];mergeArrays(arr1, size1, arr2, size2, result);for (int i = 0; i < size1 + size2; i++) {printf("%d ", result[i]);}return 0;
}
习题7:求一个3x3矩阵主对角线元素之和
#include <stdio.h>int main() {int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};int sum = 0;for (int i = 0; i < 3; i++) {sum += matrix[i][i];}printf("主对角线元素之和为:%d\n", sum);return 0;
}
习题8:编写程序,打印10行杨辉三角

思路:用二维数组存储三角形,
每行第一个和最后一个元素为 1,
中间元素是上行两个元素之和。

#include <stdio.h>void printPascalsTriangle(int rows) {int arr[rows][rows];for (int i = 0; i < rows; i++) {arr[i][0] = arr[i][i] = 1;for (int j = 1; j < i; j++) {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}for (int i = 0; i < rows; i++) {for (int j = 0; j <= i; j++) {printf("%d ", arr[i][j]);}printf("\n");}
}int main() {int rows = 10;printPascalsTriangle(rows);return 0;
}

快速回顾:
WanyuC语言—复杂数据类型程序设计(5)

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

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

相关文章

[SAP ABAP] 面向对象程序设计-类和对象

面向对象开发的特点&#xff1a;封装、继承和多态 什么是类和对象&#xff1f; 类(CLASS)是创建对象的模板&#xff0c;对象(OBJECT)是类的实例 一个类可以创建多个对象 类 > 类型 对象 > 个体 在ABAP语言中&#xff0c;定义一个类&#xff0c;需要包含定义(defin…

实验05多重循环---7-04 小于m的最大的10个素数

给定一个整数m&#xff08;50<m<20000&#xff09;&#xff0c;找出小于m的最大的10个素数。 输入格式: 输入在一行中给出一个正整数m&#xff08;50<m<20000&#xff09;。 输出格式: 在一行中按递减顺序输出10个满足条件的素数&#xff0c;每个素数输出占6列。…

模型 泰斯勒定律(复杂性守恒定律)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。复杂性守恒&#xff0c;转移而非消除。 1 泰斯勒定律的应用 1.1 电视遥控器的复杂性转移 在过去&#xff0c;电视遥控器设计得非常复杂&#xff0c;拥有许多按钮和功能&#xff0c;这使得用户在使用…

前端注释都应该怎么写?

以下是一些前端注释的例子&#xff0c;展示了如何应用前面提到的建议&#xff1a; 1. 使用清晰、简洁的语言 // 计算两个数的平均值 function calculateAverage(a, b) {return (a b) / 2; }2. 描述代码的目的和功能 // 将日期格式化为 "YYYY-MM-DD" 的字符串 fun…

KubeSphere v4 扩展组件使用指南

KubeSphere v4 扩展组件使用指南 日前&#xff0c;KubeSphere v4 发布&#xff0c;相较于之前的版本&#xff0c;新版本在架构上有了较大的变化。其中&#xff0c;有一个新的概念——扩展组件。 本文我们将针对扩展组件做一个详细的说明&#xff0c;让大家对扩展组件能够了解…

后端-内连接(INNER JOIN),左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)的区别

SQL 语句中的 内连接、外连接、左连接 和 右连接 是常见的用于联合多张表的数据查询方式。它们的区别主要体现在如何处理在连接的表中没有匹配数据的记录。 1. 内连接&#xff08;INNER JOIN&#xff09; 内连接是最常见的一种连接方式&#xff0c;它返回两个表中满足连接条件…

【Orange Pi 设备】window11主机下使用VNC可视化控制RK3566

【Orange Pi 设备】window11主机下使用VNC可视化控制RK3566 前言VNC连接搭建(WiFi模式)Orange Pi 3B操作本地主机操作 总结 XFCE桌面VNC连接后灰屏问题&#xff0c;可以优先尝试本文的方式 前言 Orange Pi 3B 是一款基于瑞芯微 RK3566 处理器的单板计算机&#xff0c;旨在为开…

Go 语言的函数调用

1. 引言 Go 语言的函数调用是其核心特性之一,Go 的函数调用方式既简洁又强大。理解 Go 语言中的函数调用机制不仅有助于编写更高效的代码,也能帮助开发者深入了解 Go 的并发模型和内存管理。 在这篇博客中,我们将详细探讨 Go 语言的函数调用机制,了解函数的声明、调用、参…

【VUE+DRF】案例升级

1、功能完善&#xff08;简易版&#xff09; 1.1 后端API校验 基于drf的认证组件实现只有登录之后才能查看 utils/auth.py from rest_framework.authentication import BaseAuthentication from rest_framework.exceptions import APIException, AuthenticationFailed from…

背靠背MOS管-锂电池充放电控制详解

目录&#xff1a; 1、概述 2、外接适配器 3、使用锂电池 4、电池检测回路 1、概述 本锂电池充放电控制电路采用 TP4055 作为电池 BAT 的充电控制&#xff0c;如下图1.1绿色框所示。 TP4055 引脚功能描述&#xff1a; 1CHRG开漏输出的充电状态指示引脚&#xff0c;需要上…

嵌入式软件八股文

1.指针的大小是固定的&#xff0c;和指针的类型没有关系 只与编译器有关&#xff0c;32位系统指针大小为8个字节&#xff0c;x64一般为64位系统&#xff0c;指针大小一般为4个字节。 2.sizeof()和strlen() sizeof()计算所占内存的大小,可以计算int float大小 strlen()计算的…

美畅物联丨物联网通信新纪元:Cat.1与5G RedCap的差异化应用

​ 在物联网&#xff08;IoT&#xff09;迅猛发展的时代&#xff0c;通信标准对物联网设备的连接性、性能和适用性有着极为关键的作用。小编在《美畅物联丨Cat.1与NB-IoT&#xff1a;物联网设备的通信标准对比》中提到Cat.1与NB-IoT的对比区别&#xff0c;后来就有小伙伴问&…

单表查询题库

1. 查看course表结构的SQL命令是什么&#xff1f; A. SELECT * FROM exam.course; B. \d exam.course; C. \d exam.course; D. DESCRIBE exam.course; 答案&#xff1a;C 2. 使用哪个SQL命令可以查看exam.course表中的所有数据&#xff1f; A. SELECT * FROM e…

vue用jenkins 打包项目项目关闭eslint检查

问题描述&#xff1a;创建vue脚手架项目后&#xff0c;使用jenkins 打包项目&#xff0c;出现如下图所示错误&#xff0c;显示错误来源于eslint检测。 解决方法&#xff1a;在根目录下找到vue.config.js文件&#xff0c;添加lintOnSave: false以关闭eslint检测&#xff0c;项目…

序列中删除指定数字【四种解法】

文章目录 解法1&#xff1a;另辟空间法解法2&#xff1a;覆盖法解法3&#xff1a;覆盖法&#xff08;进阶版&#xff09;解法4&#xff1a;异或取巧法 题目&#xff1a;有一个整数序列&#xff08;可能存在重复的整数&#xff09;&#xff0c;编写程序删除序列中指定的某一个整…

【p2p、分布式,区块链笔记 Torrent】WebTorrent的add和seed函数

在【p2p、分布式&#xff0c;区块链笔记 Torrent】WebTorrent的上传和下载界面的示例中&#xff0c;主要通过WebTorrent类的add和seed函数实现相关功能。这两个函数都返回一个Torrent类对象的实例。 seed函数 import createTorrent, { parseInput } from create-torrent // &…

【07】Maven项目多环境打包配置

&#xff08;1&#xff09;Web项目使用Maven进行多模块划分开发之后&#xff0c;面临一个问题&#xff0c;即如何加载不同环境的配置文件打包发布到不同的环境中&#xff1f; &#xff08;2&#xff09;不同的环境有开发环境、测试环境、线上生产环境等。 &#xff08;3&#x…

机器学习—前向传播的一般实现

可以写一个函数来实现一个密集的层&#xff0c;那是神经网络的单层&#xff0c;所以定义稠密函数&#xff0c;它将上一层的激活作为输入以及给定层神经元的参数w和b。看下边图片所展示的例子&#xff0c;把所有这些权重向量堆叠成一个矩阵&#xff0c;wnp.array([[1,-3,5][2,4,…

濮良贵《机械设计》第十版课后习题答案全解PDF电子版

《机械设计》(第十版)是“十二五”普通高等教育本科国家级规划教材&#xff0c; 是在《机械设计》(第九版)的基础上修订而成的。本次修订主要做了以下几项工作&#xff1a; 1. 内容的适当更新——自本书第九版出版以来&#xff0c; 机械工程及相关领域的新理论、新技术和新标准…

1分钟解决Excel打开CSV文件出现乱码问题

一、编码问题 1、不同编码格式 CSV 文件有多种编码格式&#xff0c;如 UTF - 8、UTF - 16、ANSI 等。如果 CSV 文件是 UTF - 8 编码&#xff0c;而 Excel 默认使用的是 ANSI 编码打开&#xff0c;就可能出现乱码。例如&#xff0c;许多从网络应用程序或非 Windows 系统生成的 …