第八章实验题汇总

news/2024/12/1 0:25:55/

7-1 求一年中的天数

实验八 结构体与其他构造类型

一、实验目的

  1. 掌握结构体变量的定义和引用。
  2. 掌握结构体数组和结构体指针的使用。
  3. 培养使用结构体解决实际问题的能力。

二、实验内容

1、编写程序,在主函数中输入年月日,利用days函数计算该天是本年中的第几天。定义一个结构体变量(包括年、月、日)。

提示:声明结构体类型struct y_m_d,成员为year、month、day。根据题目,需要考虑闰年的情况,

判断闰年的条件为year%4==0 && year%100!=0 || year%400==0。

函数接口定义:

在这里描述函数接口。例如:
int days(int year,int month,int day); 

输入样例:

在这里给出一组输入。例如:

2020 3 1

输出样例:

在这里给出相应的输出。例如:

61

代码: 

#include <stdio.h>
struct Date
{int year;int month;int day;
}date;
int days(int year, int month, int day)
{int sum = 0, i;int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };for (i = 0; i < month - 1; i++){sum += a[i];}sum += day;if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){if (month > 2){sum = sum + 1;}else{sum = sum + 0;}}else{sum = sum + 0;}return sum;
}
int main()
{int sum;scanf("%d%d%d", &date.year, &date.month, &date.day);sum = days(date.year, date.month, date.day);printf("%d\n",sum);return 0;
}

 

7-2 成绩排序

实验八 结构体与其他构造类型

一、实验目的

  1. 掌握结构体变量的定义和引用。
  2. 掌握结构体数组和结构体指针的使用。
  3. 培养使用结构体解决实际问题的能力。

二、实验内容

2、 有n名学生的信息(包括学号、姓名和成绩),编写函数实现按成绩由高到低的顺序输出学生的信息。

函数接口定义:

在这里描述函数接口。例如:
void sort(struct Student stud[],int n)//选择法

输入格式:

输入一个正整数n(n<50),下面n行输入n个学生的信息,包括:学号、姓名、成绩。

输出格式:

输出从高到低排序后的学生信息,包括:学号、姓名、成绩。

输入样例:

在这里给出一组输入。例如:

3
101 Zhang 78
102 Wang 91
103 Li 85

输出样例:

在这里给出相应的输出。例如:

102 Wang 91
103 Li 85
101 Zhang 78

代码: 

#include<stdio.h>
struct Stu
{int num;char name[50];int score;
};
int main()
{struct Stu s[50], * a[50];struct Stu* t, ** p;int i,j;int n;scanf("%d", &n);for (i = 0; i < n; ++i)scanf("%d%s%d", &s[i].num, s[i].name, &s[i].score);for (i = 0; i < n; ++i)a[i] = &s[i];for (i = 0; i < n-1; ++i){p = a + i;for (j = i + 1; j < n; ++j)if ((*p)->score < a[j]->score)p = a + j;if (p != a + j){t = *p;*p = a[i];a[i] = t;}}for (i = 0; i < n; ++i)printf("%d %s %d\n", a[i]->num, a[i]->name, a[i]->score);return 0;
}

7-3 查找电话号码

实验八 结构体与其他构造类型

一、实验目的

  1. 掌握结构体变量的定义和引用。
  2. 掌握结构体数组和结构体指针的使用。
  3. 培养使用结构体解决实际问题的能力。

二、实验内容

3、编写一个程序,输入若干人员的姓名及电话号码(11位),以字符’#’表示结束输入。然后输入姓名,查找该人的电话号码。不允许出现同名。

函数接口定义:

在这里描述函数接口。例如:
void search(struct Telephone b[],char *x,int n)

输入样例1:

在这里给出一组输入。例如:

wanglin 18303721616
zhaohaojie 18303721919
zhangli 18303721010
#
zhaohaojie

输出样例1:

在这里给出相应的输出。例如:

number is 18303721919

输入样例2:

在这里给出一组输入。例如:

wanglin 18303721616zhaohaojie 18303721919zhangli 18303721010#zhanglin

输出样例2:

在这里给出相应的输出。例如:

Not found!

代码: 

#include <stdio.h>
#include <string.h>
struct Men
{char name[50];char phone[20];
};
void main()
{char c[50];struct Men s[50];int i, n;for (i = 0;; i++){scanf("%s\n", s[i].name);if (s[i].name[0] == '#')break;scanf("%s\n", s[i].phone);}n = i;int flag=0;scanf("%s", c);for (i = 0; i < n; i++){if (strcmp(s[i].name, c) == 0){printf("number is %s\n", s[i].phone);flag = 1;}}if (flag == 0) {printf("Not found!");}
}

7-4 出圈游戏

实验八 结构体与其他构造类型

一、实验目的

  1. 掌握结构体变量的定义和引用。
  2. 掌握结构体数组和结构体指针的使用。
  3. 培养使用结构体解决实际问题的能力。

二、实验内容

4、m 个人围成一个圈,从第一个人开始顺序报数1,2,3,4……,凡是报到n者退出圈子。找出最后留在圈子中的人是原来的几号。要求用链表实现。
m在[2,50]区间,n在[2,m-1]区间,输出数据的格式为%3d。

函数接口定义:

在这里描述函数接口。例如:
void games(struct Person link[],int m,int n)

输入样例:

在这里给出一组输入。例如:

8 3 

输出样例:

在这里给出相应的输出。例如:

out No:  3  6  1  5  2  8  4
The last one is   7

代码: 

 

#include<stdio.h>
int main() {int i, k, n, m, y;int num[50];int *p;scanf("%d %d", &n, &y);p = num;for (i = 0; i < n; i++) {*(p + i) = i + 1;}i = 0;k = 0;m = 0;printf("out No:");while (m < n - 1) {if (*(p + i) != 0) {k++;}if (k == y) {printf("%3d",*(p + i) );*(p + i) = 0;k = 0;m++;}i++;if (i == n) {i = 0;}}printf("\n");while (*p == 0) {p++;}printf("The last one is %3d\n", *p);return 0;
}


http://www.ppmy.cn/news/363249.html

相关文章

【二等奖方案】系统访问风险识别「QDU」团队解题思路

第十届CCF大数据与计算智能大赛&#xff08;2022 CCF BDCI&#xff09;已圆满结束。大赛官方竞赛平台DataFountain&#xff08;简称DF平台,官号统称DataFountain 或DataFountain数据科学&#xff09;正在陆续释出各赛题获奖队伍的方案思路。 本方案为【系统访问风险识别】赛题…

LeetCode-100题(Hot) 32. 最长有效括号 [Java实现] [极速]

给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 示例 1&#xff1a; 输入&#xff1a;s "(()" 输出&#xff1a;2 解释&#xff1a;最长有效括号子串是 "()" 动态规划yyds 设 dp[s.le…

01背包问题和完全背包问题

这里说的最大值加上value[i]就是拿第i件物品的最后答案&#xff0c; 即为f[i][j]。 感觉我不太会讲呜呜呜 //01背包问题题解 #include<iostream> #include<cstdio> #include<math.h> using namespace std; #define v 1500 unsigned int f[v][v]; //全局变…

又拿下一块屏幕,中景园2.08寸OLED SH1122 带字库芯片 GT30L32S4W

没图没真相&#xff0c;一直知道有字库芯片这么个东西&#xff0c;终于找时间下手试了试&#xff0c;还算比较好用&#xff0c;就是开始卖家资料给错了白浪费俩小时。。。 sh1122 刚好mpy论坛有程序&#xff0c;直接白嫖 字库芯片 参照我徒弟的库&#xff0c;简单重新写了下 难…

平方根法、改进的平方根法解方程组

本篇内容包含两个部分&#xff1a;平方根法、改进的平方根法。感觉这种题绝大部分是靠套公式&#xff0c;记住公式和解题思路&#xff0c;还是相当简单的。 1 平方根法 1.1 解题思路 1.2 核心公式 1.3 例题解析 由 Lyb && L^t*xy 解得 x [1, -1, 1]^t2 改进的平方根…

[牛客网刷题]L32 非整数倍数据位宽转换24to128

1.题目描述 实现数据位宽转换电路&#xff0c;实现24bit数据输入转换为128bit数据输出。其中&#xff0c;先到的数据应置于输出的高bit位。电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性&#xff0c;valid_out用来指示数据输出data_out的有效性&#xff1b;…

GT20L16S1Y GT30L32S4W 横置竖排 转换为 横置横排

GT20L16S1Y GT30L32S4W 横置竖排 转换为 横置横排 参考&#xff1a;https://blog.csdn.net/lljss1980/article/details/126566150 GT20L16S1Y 为横置竖排 GT30L32S4W 为横置横排 暂时为了适配 写了一个适配16 * 16点阵 32 * 32点阵 横置竖排 转换为 横置横排 的算法 /// brie…

GT30L32S4W中文字库芯片+墨水屏显示调好程序分享

这公司叫高通&#xff0c;但新版规格书不带地址运算&#xff0c;带地址运算规格书下载GT30L32S4W规格书&#xff0c;带地址运算 芯片管脚配置&#xff1a; 基础驱动及读取代码&#xff1a; /********************************************************************* brief …