c语言编程题经典100例——(46~50例)

1、实现字符串转数字。

在C语言中,可以使用库函数atoi()将字符串转换为整数。该函数接受一个字符串作为参数,并返回对应的整数值。以下是一个示例代码:

#include <stdio.h>  
#include <stdlib.h>  int main() {  char str[] = "12345";  int num = atoi(str);  printf("The integer value of \"%s\" is %d\n", str, num);  return 0;  
}

运行结果:

The integer value of "12345" is 12345

如果要将字符串转换为其他类型的数字,可以使用相应的库函数,例如atof()用于将字符串转换为浮点数。

2、实现字符串的排序。

以下是使用C语言实现字符串排序的示例代码:

#include <stdio.h>  
#include <string.h>  #define MAX_LENGTH 100 // 字符串最大长度  int main() {  char strings[10][MAX_LENGTH]; // 存储待排序字符串的数组  char temp[MAX_LENGTH]; // 用于交换字符串的临时数组  int n, i, j;  char *p;  printf("请输入待排序字符串的数量:");  scanf("%d", &n);  printf("请输入%d个待排序字符串:\n", n);  for (i = 0; i < n; i++) {  scanf("%s", strings[i]);  }  // 使用冒泡排序对字符串进行排序  for (i = 0; i < n - 1; i++) {  for (j = 0; j < n - i - 1; j++) {  p = strings[j];  if (strcmp(strings[j+1], p) < 0) {  strcpy(temp, p);  strcpy(p, strings[j+1]);  strcpy(strings[j+1], temp);  }  }  }  // 输出排序后的字符串  printf("排序后的字符串为:\n");  for (i = 0; i < n; i++) {  printf("%s\n", strings[i]);  }  return 0;  
}

在上述代码中,我们首先定义了一个二维字符数组strings,用于存储待排序的字符串。然后,我们使用scanf()函数从标准输入中读入待排序的字符串,并将它们存储到strings数组中。接下来,我们使用冒泡排序对字符串进行排序,排序时使用strcmp()函数比较字符串的大小。最后,我们输出排序后的字符串。

3、实现字符串的查找。

以下是使用C语言实现字符串查找的示例代码:

#include <stdio.h>  
#include <string.h>  int main() {  char str[100], sub[20];  int i, pos;  printf("请输入要查找的字符串:");  fgets(str, 100, stdin);  printf("请输入要查找的子字符串:");  fgets(sub, 20, stdin);  pos = strstr(str, sub);  if (pos == NULL) {  printf("未找到子字符串!\n");  } else {  printf("子字符串在主字符串中的位置为:%d\n", pos);  }  return 0;  
}

        在上述代码中,我们首先定义了两个字符数组strsub,分别用于存储主字符串和待查找的子字符串。然后,我们使用fgets()函数从标准输入中读入这两个字符串。接着,我们使用strstr()函数在主字符串中查找子字符串,如果找到了,则返回子字符串在主字符串中的位置;否则返回NULL。最后,我们根据返回值输出查找结果。

4、实现数字的加密和解密。

以下是一个简单的C语言程序,用于实现数字的加密和解密。该程序使用简单的替换算法,将数字0-9分别替换为它们的平方根(取整数部分),即0-9分别替换为0-3、5-9。加密和解密的过程实际上就是这种替换的逆操作。

#include <stdio.h>  
#include <math.h>  int main() {  int num, encrypted, decrypted;  printf("请输入要加密的数字:");  scanf("%d", &num);  encrypted = encrypt(num);  printf("加密后的数字为:%d\n", encrypted);  decrypted = decrypt(encrypted);  printf("解密后的数字为:%d\n", decrypted);  return 0;  
}  int encrypt(int num) {  int encrypted = 0;  while (num > 0) {  int digit = num % 10;  encrypted = encrypted * 10 + sqrt(digit) - 1;  num /= 10;  }  return encrypted;  
}  int decrypt(int encrypted) {  int num = 0, sqrt_val;  while (encrypted > 0) {  int digit = encrypted % 10;  sqrt_val = sqrt(digit + 1);  num = num * 10 + sqrt_val % 10;  encrypted /= 10;  }  return num;  
}

        该程序中的encrypt函数和decrypt函数分别用于加密和解密数字。encrypt函数将输入的数字按位拆分,将每个数字的平方根(取整数部分)作为新的数字,再将这些数字按原来的顺序拼接起来作为加密后的数字。decrypt函数则是encrypt函数的逆操作,将加密后的数字按位拆分,计算出每个数字的平方根(取整数部分)的逆运算,再将这些数字按原来的顺序拼接起来作为解密后的数字。

5、实现链表中节点的删除。

在C语言中,链表是一种常见的数据结构。链表中的每个节点都包含数据和指向下一个节点的指针。删除节点需要找到该节点,然后断开它与其前一个节点的连接,同时更新它前一个节点的连接,使其指向当前节点的下一个节点。

以下是一个简单的示例,说明如何在C语言中删除链表中的节点:

首先,定义链表节点的结构:

#include <stdio.h>  
#include <stdlib.h>  typedef struct Node {  int data;  struct Node* next;  
} Node;

然后,创建一个函数来删除链表中的节点:

Node* deleteNode(Node* head, int key) {  // 如果头节点为空,或者头节点的数据就是关键字,那么直接返回NULL  if (head == NULL || head->data == key) {  return head;  }  // 找到前一个节点  Node* prev = head;  while (prev->next != NULL && prev->next->data != key) {  prev = prev->next;  }  // 如果关键字不在链表中,返回原始链表  if (prev->next == NULL) {  return head;  }  // 断开当前节点与前一个节点的连接,并释放当前节点的内存空间  Node* temp = prev->next;  prev->next = temp->next;  free(temp);  return head;  
}

        这个函数首先检查头节点是否为空或者头节点的数据是否为关键字。如果是,那么它直接返回NULL,因为删除头节点或者空链表是没有意义的。然后,它遍历链表,找到与关键字匹配的节点的前一个节点。最后,它断开当前节点与前一个节点的连接,并释放当前节点的内存空间。

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

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

相关文章

操作符keyof的作用是什么?

keyof 是 TypeScript 中的一个操作符&#xff0c;用于获取一个类型&#xff08;通常是一个对象类型或接口&#xff09;的所有公共属性名组成的字符串字面量联合类型。它常常用于类型安全的属性访问和映射类型的定义。 什么时候使用 keyof&#xff1f; 类型安全的属性访问&…

Java | 数据一致性校验遇到的时间序列化格式不一致问题如何解决?

关注&#xff1a;CodingTechWork 需求 设计 在开发过程中&#xff0c;有数据一致性校验需求。如下设计&#xff1a; 对于一些安全数据进行加密处理&#xff0c;并将这个加密值进行存储。当再次查询时&#xff0c;对当前数据进行加密并比对之前的加密值&#xff0c;看是否一…

ardupilot开发 --- 机载计算机 篇

0. 前言 关于机载计算机&#xff1b; 1. APSync 说到机载计算机Companion computer就不得不提另一个关键词APSync&#xff1b;APSync简化了机载计算机的设置&#xff0c;以便它可以为ArduPilot提供额外的功能&#xff0c;并简化与互联网服务的集成&#xff1b;提供日志下载和…

6、单片机与AT24C02的通讯(IIC)实验(STM32F407)

IIC简介 I2C(IIC,Inter&#xff0d;Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线&#xff0c;可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送&#xff0c;高速IIC总线一般可达…

如何使用简单的分支策略来保护您的 Git 项目

良好的分支策略可以使项目源代码获得一致且安全的数据&#xff0c;所有协作者可以在更短的生命周期内共享和访问这些数据。 您必须以灵活的方式设计项目模型&#xff0c;以便对所有成员角色和权限进行良好的管理。 我要谈论的并没有什么令人惊讶的新鲜事。您可能已经知道一些…

在idea中写sql语句,向数据库添加数据时,添加的字符串却显示???,解决方法

这是字符编码的问题 如何解决&#xff1a; 在idea的配置数据库的地方修改下边&#xff1a;mysql8版本和5版本差距不大。 在URL后加?useUnicodetrue&characterEncodingUTF8 例如 原来&#xff1a;String url “jdbc:mysql://localhost:3306/stu”; 改变后&#xff1a;St…

利用ARCGIS做地下水脆弱性评价分析

&#xff08;一&#xff09;行政边界数据、土地利用数据和土壤类型数据 本文所用到的河北唐山行政边界数据、土地利用数据和土壤类型数据均来源于中国科学院资源环境科学与数据中心&#xff08;https://www.resdc.cn/Default.aspx&#xff09;。 &#xff08;二&#xff09;地…

hadoop完全分布式搭建

文章目录 集群部署规划服务器准备Mobaxterm 远程登录实验前准备安装软件工具关闭防火墙 安装 JDK 和 Hadoop创建软件包目录解压软件包配置环境变量 集群搭建先创建 HDFS 工作目录和 LOG 目录配置集群配置环境配置 HDFS 主节点信息、持久化和数据文件的主目录配置 HDFS 默认的数…

技巧-GPU显存和利用率如何提高和batch_size/num_works等参数的实验测试

目录 简介实验测试显存占用问题GPU占用率波动问题num_work不是越大越好 总结 本专栏为深度学习的一些技巧,方法和实验测试,偏向于实际应用,后续不断更新,感兴趣童鞋可关,方便后续推送 简介 在PyTorch中使用多个GPU进行模型训练时&#xff0c;各个参数和指标之间存在一定的关系…

three.js结合vue

作者&#xff1a;baekpcyyy&#x1f41f; 1.搭建环境 ps&#xff1a;这里要按照node.js在之前有关vue搭建中有介绍 新建文件夹并在vsc终端中打开 1.输入vite创建指令 npm init vitelatest然后我们cd进入刚才创建的目录下 npm install安装所需依赖 npm run dev启动该项目 …

LLVM学习笔记(63)

4.4.3.3.2.3. 向量操作数类型的处理 下面开始处理向量类型。在默认情形下这些操作都会拆分为更小的操作或者调用库。 X86TargetLowering::X86TargetLowering&#xff08;续&#xff09; 667 // Some FP actions are always expanded for vector types. 668 for…

全栈软件开发工程师需要具备哪些技能

全栈软件开发工程师需要具备前端、后端和数据库等多方面的技能&#xff0c;以便能够在整个应用开发周期中承担各种任务。以下是典型的全栈软件开发工程师的技能栈&#xff1a; 一、前端技能&#xff1a; 1.HTML/CSS/JavaScript: 构建网页的基本技能&#xff0c;负责页面结构、样…

前端笔记:React的form表单全部置空或者某个操作框置空的做法

原创/朱季谦 在React框架前端开发中&#xff0c;经常会有弹出框的开发&#xff0c;涉及到弹出框&#xff0c;难免就会有表单。一般在关闭弹出框或者对表单联动时&#xff0c;往往都需要考虑对表单进行置空操作了。 我以前在工作就遇到过这类问题&#xff0c;正好顺便对表单置空…

【UE】中文字体 发光描边材质

效果 步骤 1. 先将我们电脑中存放在“C:\Windows\Fonts”路径下的字体导入UE 点击“全部选是” 导入成功后如下 2. 打开导入的“SIMSUN_Font”&#xff0c;将字体缓存类型设置为“离线” 点击“是” 这里我选择&#xff1a;宋体-常规-20 展开细节面板中的导入选项 勾选“使用距…

【投稿优惠、可EI检索】2024年机器人学习与自动化算法国际学术会议(IACRLAA 2024)

2024年机器人学习与自动化算法国际学术会议(IACRLAA 2024) 2024 International Academic Conference on Intelligent Control Systems and Robot Learning 一、【会议简介】 本届机器人学习与自动化算法国际学术会议(IACRLAA 2024)将于2024年1月23日在北京盛大开幕。这次会议将…

深信服技术认证“SCSA-S”划重点:SQL注入漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】YOLOV5

目录 算法原理 网络结构 1.1 Backbone 1.2 Neck 1.3 Head 损失计算 4.1 总损失

软件设计之原型模式

原型模式是从一个对象再创建另一个可定制的对象&#xff0c;而且不需要知道任何创建的细节。拷贝分浅拷贝和深拷贝。浅拷贝无法拷贝引用对象。在面试的时候&#xff0c;我们会投多家公司&#xff0c;根据岗位的不同我们会适当调整。使用原型模式可以快速达到需求&#xff0c;下…

新时代物联网区块链如何链接底层商业?传统商家如何利用区块链实现转型?

随着新时代的到来&#xff0c;物联网和区块链技术的结合正在改变商业领域的运作模式。对于传统商家而言&#xff0c;如何利用区块链技术实现商业模式的转型和升级&#xff0c;成为了一个值得探讨的问题。本文将探讨新时代物联网区块链如何链接底层商业&#xff0c;并阐述传统商…

推荐几款python在线学习和电子书网站

学习python的过程中&#xff0c;虽然下载了很多的电子书&#xff0c;但是在学习过程中基本上都是通过一些在线网站或者在线电子书进行的。 下面给大家推荐几个在线学习教程网站和电子书网站。 《菜鸟教程》 一句话介绍&#xff1a;很多初学者的选择 网址&#xff1a;https:…