IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言程序设计(2020)编程题答案——第14章结构体、共用体和用户定义类型 -> 正文阅读

[C++知识库]C语言程序设计(2020)编程题答案——第14章结构体、共用体和用户定义类型

14.12 设有以下结构类型说明:struct stud{char num[5],name[10];···};请编写:

(1)函数readrec:把30名学生的学号、姓名、西乡成绩以及平均分放在一个结构体数组中,学生的学号、姓名和西乡成绩由键盘输入,然后计算出平均分放在结构体对应的域中。
(2)函数writerec:输出30名学生的记录。
(3)main函数调用readrec函数和writerec函数,实现全部程序功能(注:不允许使用外部变量,函数之间的数据全部使用参数传递)。

#include<stdio.h>
#include<stdlib.h>
#define N 30
void readrec(struct stud *);
void writerec(struct stud *);
struct stud
{	char num[5],name[10];
	int s[4];
	double ave;
};
void readrec(struct stud *p)
{	int i,j;
	for(i=0;i<N;i++)
	{	p[i].ave=0;
		printf("请输入学生的学号、姓名:");scanf("%s %s",p[i].num,p[i].name);//也能用gets()
		printf("请输入学生的四项成绩:");
		for(j=0;j<4;j++){scanf("%3d",&p[i].s[j]);p[i].ave+=p[i].s[j]/4.0;}//这里必须是4.0
	}
	
}
void writerec(struct stud *p)
{	int i,j;
	for(i=0;i<N;i++)
	{	printf("学生的学号、姓名为:%s %s\n",p[i].num,p[i].name);
		printf("学生的四项成绩:");
		for(j=0;j<4;j++)printf("%3d",p[i].s[j]);
		printf("\n平均分:%lf\n",p[i].ave);
	}
}
main()
{	struct stud p[N];
	readrec(p);
	writerec(p);
}

14.13 已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整形。请分别编写函数,在链表中查找数据域最大的结点:

(1)由函数值返回找到最大值。
(2)由函数值返回最大值所在结点的地址值。

#include<stdio.h>
#include<stdlib.h>

struct slist
{	int data;
	struct slist *next;
};
typedef struct slist SLIST;
SLIST *creatslist()
{	int c;
	SLIST *h,*s,*r;
	h=(SLIST *)malloc(sizeof(SLIST));
	r=h;
	scanf("%d",&c);
	while(c!=-1)
	{	s=(SLIST *)malloc(sizeof(SLIST));//生成结点
		s->data=c;
		r->next=s;//连接新生成的结点
		r=s;//新结点变成旧结点
		scanf("%d",&c);
	}
	r->next='\0';
	return h;
}

int maxaval(SLIST *head)
{	SLIST *p,*pmax;int m;//m为最大值,pmax为最大值的地址值。
	p=head->next;//p指向第一个结点;
	m=p->data;pmax=p;//结点的地址值放入pmax;
	for(p=p->next;p;p=p->next)//p=p->next结点右移
	{	if(m<p->data){m=p->data;pmax=p;}
	}
	return m;
}
SLIST *maxadd(SLIST *head)
{	SLIST *p,*pmax;int m;//m为最大值,pmax为最大值的地址值。
	p=head->next;//p指向第一个结点;
	m=p->data;pmax=p;//结点的地址值放入pmax;
	for(p=p->next;p;p=p->next)
	{	if(m<p->data){m=p->data;pmax=p;}
	}
	return pmax;
}
main()
{	SLIST *head,*pmax;int m;
	head=creatslist();//生成链表
	m=maxaval(head);
	printf("m=%d",m);
	pmax=maxadd(head);
	printf("pmax=%d\n",pmax);//这里pmax是地址值,要想输出最大值得加*
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:32:36  更:2021-12-11 15:34:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:02:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码