C语言程序设计-[23] 数组应用(续)

1、输入一行字符,统计其中有多少个单词。

根据以上分析,代码与结果如下:

#include "stdio.h"int main ( )
{  char c,pre,str[81];int i, n=0;gets (str);pre= ' ';for (i=0; c=str[i]; i++){if (c !=' ' && pre==' '){     n++;}pre = c;}printf("There are %d words in the line. \n ", n);return 0;
}

2、从键盘输入5个学生三门课程的成绩,求每个学生各门课的平均分,并按平均分从高到低的顺序输出每个学生各门课程的成绩和平均成绩。

算法分析:

1) 定义数组 int  s[5][3]; 存储三门课程的成绩。

       数组 float aver[5]; 存储平均成绩。

2) for循环从键盘按行输入每个学生三门课的成绩。

3) for循环计算出平均成绩,并存入数组aver中。

4) 用选择排序法对平均成绩排序,交换时应整行交换。

5) 按要求输出。

根据上面分析,代码与结果如下:

#include "stdio.h"
#define N  5int main ( )
{   int i,j,k,m,s[N][3];  float t, aver[N];   /*定义数组和变量*/printf (" Input 5 student's scores:\n");for (i=0; i<N; i++)                    /*输入成绩*/scanf("%d,%d,%d", &s[i][0],&s[i][1],&s[i][2]);for(i=0;i<N;i++) aver[i]=(s[i][0]+s[i][1]+s[i][2])/3.0;    /*计算平均分*/for (i=0; i<N-1; i++)                        /*选择排序法*/{    for (j=i+1; j<N; j++){if ( aver[i]<aver[j])        /*成绩高者交换到i号位置*/{    t= aver[i];      aver[i]= aver[j];      aver[j]=t; for (k=0; k<3; k++){     m= s[i][k];  s[i][k]= s[j][k];  s[j][k]=m;    } }}} printf (" the sorted numbers: \n");for (i=0; i<N; i++)             /*输出每个学生的成绩*/printf("%8d%8d%8d%8.1f\n",s[i][0],s[i][1],s[i][2],aver[i]);return 0;
}

为了减少交换次数,可以用变量k记录第i趟成绩最高者的下标,每趟最多交换一次;可将排序部分的程序改为:

for (i=0; i<N-1; i++)                        //选择排序法
{    k=i;                  //用k存储第i趟成绩最高者的下标for (j=i+1; j<N; j++){if(aver[k]<aver[j])  k=j;  }if (k!=i)            //将第i趟成绩最高者交换到i行{    t= aver[i];      aver[i]= aver[k];      aver[k]=t; for (j=0; j<3; j++){     m= s[i][j];  s[i][j]= s[k][j];  s[k][j]=m;    } }
}

结果仍然如下:

3、用键盘输入N个学生的姓名,并按字典顺序排序输出。

分析这个问题如下:

  1. 定义一个二维字符数组来存储N个学生的姓名,定义一个一维数组来存储交换姓名;
  2. 姓名可能存储空格,可以使用gets()来输入输出;
  3. 整个程序包括输入、输出和排序部分,其中排序部分可以使用上述优化后的算法,姓名比较和交换可以使用字符串比较函数和复制函数。

根据以上分析,其代码与结果如下:

#include "stdio.h"
#include "string.h"
#define N  5int main ( )
{   int i, j, k;	char name[N][20], t[20];printf(" please input student names: \n");//输入部分代码for(i=0;i<N;i++)gets(name[i]);//排序部分代码 for (i=0; i<N-1; i++)                        //选择排序法{    k=i;                  //用k存储第i趟姓名最高者的下标for (j=i+1; j<N; j++){if(strcmp(name[k],name[j])>0)  k=j;  }if (k!=i)            //将第i趟姓名最高者交换到i行{    strcpy(t,name[k]);strcpy(name[k],name[i]);strcpy(name[i],t);}} //输出部分代码printf (" the sorted student names: \n");for(i=0;i<N;i++)puts(name[i]);return 0;
}

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

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

相关文章

谷歌发布会回顾:Gemini Live 与 Pixel 9 系列重磅亮相!

在 2024 年的 Made by Google 大会 上&#xff0c;谷歌重磅发布了全新 AI 产品 Gemini Live 和新一代硬件设备 Pixel 9 系列。这场发布会的亮点不只是 AI 的进步&#xff0c;还在于其硬件与 AI 的深度融合。本文将从技术角度回顾此次发布的重点内容&#xff0c;深入解析 Gemini…

Python爬虫——爬取某网站的视频

爬取视频 本次爬取&#xff0c;还是运用的是requests方法 首先进入此网站中&#xff0c;选取你想要爬取的视频&#xff0c;进入视频播放页面&#xff0c;按F12&#xff0c;将网络中的名称栏向上拉找到第一个并点击&#xff0c;可以在标头中&#xff0c;找到后续我们想要的一些…

WebGIS开发中一些常见的概念

0. 坐标系投影 地理坐标系和投影坐标系是两种常用的坐标系统&#xff0c;它们各自有着独特的特性和应用场景。 0.1 地理坐标系 地理坐标系(Geographic Coordinate System&#xff0c; 简称 GCS)是以地球椭球体面为参考面&#xff0c;以法线为依据&#xff0c;用经纬度表示地…

Knowledge-Adaptive Contrastive Learning for Recommendation

Knowledge-Adaptive Contrastive Learning for Recommendation&#xff08;WSDM2023&#xff09; 摘要 通过对用户-项目交互和知识图&#xff08;KG&#xff09;信息进行联合建模&#xff0c;基于知识图谱的推荐系统在缓解数据稀疏和冷启动问题方面表现出了优越性。 近年来&a…

C++中STL的sring类常用接口及其源码解析

1. 为什么会有string类&#xff1f; C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c; 但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0…

基于Mysql的商业辅助决策系统的设计与实现

TOC springboot295基于Mysql的商业辅助决策系统的设计与实现 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们…

机器学习/深度学习——关于分类任务的机器学习、深度学习模型的评估指标详解

机器学习/深度学习——模型的评估详解 搭配以下文章进行学习&#xff1a; 卷积神经网络&#xff1a; 深度学习——卷积神经网络&#xff08;convolutional neural network&#xff09;CNN详解&#xff08;一&#xff09;——概述. 步骤清晰0基础可看 深度学习——卷积神经网…

virtualbox 安装 win7 系统注意事项

win7可用ISO镜像 virtualbox安装Windows 7 64位旗舰版 &#xff08;包含镜像文件&#xff09;_virtual pc安装64位windows7-CSDN博客 视图设为了自动缩放&#xff0c;没有菜单了怎么办&#xff1f; 通过按右侧CtrlC/F/L进行切换 复制黏贴不公用怎么办&#xff1f; 宿主机有…

Word密码忘记怎么办?三个密码找回工具帮你轻松找回密码

在工作当中&#xff0c;为了保护文档内容的安全&#xff0c;我们时常会设置密码。但有时会因为长时间未打开而忘记了密码&#xff0c;导致word文档无法打开。面对这种情况&#xff0c;我们该怎么办呢&#xff1f;下面小编就将给大家带来3个实用的密码找回工具&#xff0c;帮助大…

XSS游戏前五关

分享一个XSS游戏的链接 XSS Game 第一关&#xff1a; 这边有一个innerHTML属性&#xff0c;我们查看官方文档 我们找到了它存在的漏洞&#xff0c;直接利用 https://sandbox.pwnfunction.com/warmups/ma-spaghet.html?somebody<img src1 onerror"alert(1337)&quo…

人工智能在子宫内膜癌领域的研究进展|顶刊速递·24-08-12

小罗碎碎念 本期推文主题&#xff1a;人工智能在子宫内膜癌领域中的研究进展 昨天的推文主要介绍的是卵巢癌&#xff0c;有一小部分涉及到了子宫内膜癌&#xff0c;按照最新的规划&#xff0c;今天的推文是与子宫内膜癌相关的。 从事妇科肿瘤研究的老师/同学&#xff0c;可以好…

stm32智能颜色送餐小车(openmv二维码识别+颜色识别+oled显示)

大家好啊&#xff0c;我是情谊&#xff0c;今天我们来介绍一下我最近设计的stm32产品&#xff0c;我们在今年七月份的时候参加了光电设计大赛&#xff0c;我们小队使用的就是stm32的智能送餐小车&#xff0c;虽然止步于省赛&#xff0c;但是还是一次成长的经验吧&#xff0c;那…

用Python读取Excel数据在PPT中的创建图表

可视化数据已成为提高演示文稿专业度的关键因素之一。使用Python从Excel读取数据并在PowerPoint幻灯片中创建图表不仅能够极大地简化图表创建过程&#xff0c;还能确保数据的准确性和图表的即时性。通过Python这一桥梁&#xff0c;我们可以轻松实现数据自动化处理和图表生成&am…

时空自回归模型(STAR)及 Stata 具体操作步骤

目录 一、引言 二、文献综述 三、理论原理 四、实证模型 五、稳健性检验 六、程序代码及解释 附录 数据预处理 生成时空权重矩阵 一、引言 时空自回归模型&#xff08;Spatial-Temporal Autoregressive Model&#xff0c;简称 STAR&#xff09;在分析具有时空特征的数…

【Python养成】:输出两个等腰三角形且平行方向

项目场景&#xff1a; 遇到一个小小的高中小程序题目&#xff0c;有趣就做 了一下&#xff0c;供大家参考。 问题描述 要求使用python编程&#xff0c;实现如下图形。 原因分析&#xff1a; 其实就是 找规律和找空格。先左边后右边。具体解释可以找AI。太简单了没必要亲自讲解…

【C++进阶】map与set的封装实践

文章目录 map和setmapmap的框架迭代器operator()operator--()operator()和operator!()operator*()operator->() insertbegin()end()operator[] ()map的所有代码&#xff1a; set的封装迭代器的封装总结 map和set 通过观察stl的底层我们可以看见&#xff0c;map和set是通过红…

密码学基础---椭圆曲线一文打尽

1.ECC简介及密钥生成 当前公认安全有效的三大类公钥密钥体制分别为基于大数因子分解难题(RSA)、离散对数难题(DSA)和椭圆曲线离散对数&#xff08;ECC&#xff09;难题的密码体制。 最初RSA由于其容易理解被广泛运用&#xff0c;但随着计算机性能的提升&#xff0c;要保证RS…

Golang | Leetcode Golang题解之第336题回文对

题目&#xff1a; 题解&#xff1a; // 哈希表实现 class Solution {public List<List<Integer>> palindromePairs(String[] words) {List<List<Integer>> res new ArrayList<>();int n words.length;Map<String, Integer> indices ne…

AIGC:clip-interrogator

文字生成图片是近年来多模态和大模型研究的热门方向&#xff0c;openai提出的CLIP提供了一个方法建立起了图片和文字的联系&#xff0c;但是只能做到给定一张图片选择给定文本语义最相近的那一个&#xff0c;实际项目开发中我们总是需要从一张图片获取描述&#xff0c;clip-int…

高效录制新选择:2024年Windows录屏软件

录屏能帮助我们捕捉屏幕上的精彩瞬间&#xff0c;作为老师可以用来录制课程&#xff0c;作为会议记录员可以用来录制远程会议。那么有什么软件是适合windows录屏的呢&#xff1f;这次我们一起来探讨一下吧。 1.福昕录屏大师 链接&#xff1a;www.foxitsoftware.cn/REC/ 这款软…