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

【趣学C语言和数据结构100例】

【趣学C语言和数据结构100例】

问题描述

41.给出年、月、日,计算该日是该年的第几天解析:需要掌握函数:判断是否为闰年

42.(约瑟夫环问题)有 n 个人围成一圈,顺序排号。从第 1 个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来第几号的那位,用指针+数组实现。

43.有 10 个学生,每个学生的数据包括学号,姓名,3 门课的成绩,从键盘输入 10 个学生数据。要求输出 3 门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课程成绩平均分数)。

44.采用头插法建立单链表,头插法常用于逆置

45.采用尾插法建立单链表

代码分析

41.经典闰年
分析:判断为该年的第几天——>则需要判断2月的天数,即判断是否为闰年。先输入年、月、日。创造数组存储月份。2月先默认28天(如果后续为闰年,则天数+1),先计算<该月的月天数所具有的天数。判断是否为闰年并且月份>=3时对天数进行++;然后输出总天数。
写一个判断闰年函数:

  • 该年份能被4整除,但不能被100整除,是闰年。
  • 该年份能被400整除,是闰年。

记忆:4和400可以,100不行

int leap(int year){
   
	return year%4==0 && year%100!=0 || year%400==0;
}

42.约瑟夫环问题
分析:使用数组存储数据。先输入n,创造一个n大小的数组。赋初值为i+1(从1开始计数)。创造一个remain用来计数剩余人数,定义一个访问指针。只要remain剩余人数>1,就一直进行游戏。游戏开始,令p指向数组。在创造一个循环while(p!=people+n)(只要不到数组的最后一位,就一直判断,即用来遍历数组)(注意:p是一位一位的移动,到最后一位之后,使p指向数组的开头)游戏正式开始,如果p此时指向的不为0,就有效,则计数++;判断计数是否为3,如果为3,则计数归0,剩余人数-1,该位置赋值为0(*p=0,即退出圈子),并且进行p++。一直到remain剩余人数为1,遍历数组找到不为0的数,即最后留下的。

43.初识结构体
结构体的定义:

结构体知识:

//在C语言中定义:
typedef struct {
   
	int x;
	char y;
	float z;	
}student;

//在C++语言中定义:
struct student{
   
	int x;
	char y;
	float z;	
};

结构体的大小:
int+char+float=4+1+8=13

结构体定义并赋值(初始化默认为 0):
student a1;
a1.x=1;a1.y=2;a1.z=3;

student a1={
   1,2,3};

分析:本题创造学号,姓名,3门课的成绩(数组),使用for循环即可解决问题。

44.链表之头插法

//链表知识:
//定义方式一:
typedef struct LNode {
   
    int data;
    struct LNode *next;
} LNode,*Liuklist;

//定义方式二(更优):
typedef struct LNode {
   
    int data;
    struct LNode *next;
} LNode;

typedef LNode *Liuklist;
//LNode 结构体定义了单链表节点的结构,包含 data 和 next 两个成员。
//Liuklist 被定义为指向 LNode 的指针,因此它可以用来表示单链表。
int mian(){
   
	// 创建三个节点
    LNode* node1 = (LNode*)malloc(sizeof(LNode));
    LNode* node2 = (LNode*)malloc(sizeof(LNode));
    LNode* node3 = (LNode*)malloc(

http://www.kler.cn/news/360157.html

相关文章:

  • skywalking本地测试
  • 从0开始linux(16)——进程(7)进程结束
  • SSM框架实战小项目:打造高效用户管理系统 day2
  • c++初阶--string类(使用)
  • Qt-network (TCP UDP)
  • SSH流量秒变HTTPS —— 筑梦之路
  • Redis底层和缓存雪崩,击穿,穿透
  • 多线程——单例模式
  • 微信小程序/uniapp动态修改tabBar信息及常见报错
  • 全天候风险平价策略下载 | Quantlab AI v0.2:OpenAI的Swarm适配国内大模型(附python代码下载)
  • 多线程实战:从循环打印ABC到单例模式线程池
  • Gooxi打造AI时代算力底座,赋能智慧安防
  • 自由学习记录(12)
  • Json-Rpc框架(项目设计 —— 服务端模块功能详细介绍)
  • 8.函数定义与使用
  • vue开发环境,生产环境实现跨域请求使用nginx
  • 多IP访问多网段实验
  • Git的原理和使用(四)
  • Redis如何批量删除指定前缀的key
  • 88.【C语言】文件操作(5)