BJFU|C程序设计基础(21下)实验二
仅供课外学习使用,任何个人与机构不得利用此文章进行任何形式的作弊。
实验目的:
- 能够进行一维数组的定义和初始化,以及数组元素的输入和输出;
- 熟悉数组处理的常用算法的设计方法以及对数组进行插入和删除等;
- 具备简单数据查找能力。
实验内容:
编写程序,实现如下任务:从键盘输入若干个整数,输入整数的个数小于100,其值在-100~100范围内,用-1作为输入结束的标志。统计每个整数的个数并从大到小排序,输出排序后的结果。
提示:定义两个数组,一个用来存放输入整数,另一个用来存放统计信息。
实验要求:
- 须独立完成算法设计及代码编写,严禁抄袭。
参考书目:
Stephen Prata著, 姜佑 译. C Primer Plus (第6版)中文版. 北京:人民邮电出版社,2016.
(作者注:实验二与实验一同时发布,出于实际情况考虑,此次老师老师亦未给出输入与输出样例)
代码实现:
实例一:每天都想睡十小时:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h>
int main()
{int a[101], b[205][2] = {0};//a存数据b排序 int i, j, t;for(i = 0; i < 101; i++){scanf("%d", &a[i]);//输入 if(a[i] == -1){a[i] = 0;i--;break;}if(a[i] >= 0) b[a[i]][0]++;//桶排 else b[-a[i] + 100][0]++;//Key Step: 从b[101]开始存储负数个数 }for(i = 0; i <= 100; i++)b[i][1] = i;for(i = 101; i <=200; i++)b[i][1] = 100 - i;for(i = 0; i < 201; i++)//冒泡排序 for(j = 0; j < 200 - i; j++){if(b[j][0] < b[j + 1][0]){t = b[j][0];b[j][0] = b[j + 1][0];b[j + 1][0] = t;t = b[j][1];b[j][1] = b[j + 1][1];b[j + 1][1] = t;}}for(i = 0; i < 202; i++)if(b[i][0] != 0)printf("The num of %d is %d\n", b[i][1], b[i][0]);//输出 return 0;
}
实例二:>C=C<:
#include <stdio.h>void sort(int a[],int t);int main()
{const int num = 100;int a[num];int b[num]; int t = 0;int i,k;for(i=0;i<num;i++){a[i] = b[i] = 0;} //初始化 for(t=0;t<num;t++){scanf("%d",&a[t]); //输入 if(a[t]!=-1)b[a[t]]++; //记录数字个数 else break;}sort(a,t-1); //调用函数 for(i=0;i<num;i++){if(b[i]!=0)printf("%d一共有%d个\n",i,b[i]);}for(i=0;i<t-1;i++){printf("%d ",a[i]);}return 0;} void sort(int a[],int t) //冒泡排序
{int m,n;for(m=0;m<t;m++){for(n=0;n<t-1-m;n++){if(a[n]<a[n+1]){int temp = a[n+1];a[n+1] = a[n];a[n] = temp;}}}
}
实例三:又欠又欠
#include <stdio.h>
//定义全局变量数组a,b
int a[101], b[101], i=0;
int main()
{//用do while循环进行数据输入//用数组a下标进行次数统计,数组b接收输入的值do{scanf("%d", &b[i]);a[b[i]]++;i++;} while(b[i - 1] != -1);printf("结果为:\n");//让次数从上到下遍历,找到对应次数的数组下标for(int i = 100; i > 0; i--){for(int j = 0; j <= 100; j++){if(a[j] == i)printf("%d出现了%d次\n", j, i); }} return 0;
}
BJFU|C程序设计基础(21下)实验二相关推荐
- 【C语言入门】SDUT《程序设计基础I 》实验1-顺序结构程序设计题解 c语言入门语法讲解
SDUT<程序设计基础I >实验1-顺序结构程序设计题解 && c语言语法讲解 链接 前言: 为方便更多同学入门C语言, 特在此编写SDUT OJ c语言入门150题题解即 ...
- python123测验9程序题_python程序设计实验二
Python程序设计实验安徽工程大学 班级:物流191 姓名:许岚岚 学号:3190505110 日期:2020年3月21日指导教师:修 宇 实验二 顺序结构程序设计(验证性实验 ...
- 奥鹏20春季1903C语言,奥鹏南开大学 20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业...
1.奥鹏南开大学2020年秋季学期在线作业 11192553751.有关析构函数的说法正确的是( ).A.析构函数可以有多个B.析构函数和构造函数一样可以有形参C.析构函数的功能是用来释放一个对象D. ...
- 北师大1903计算机在线答案,[南开大学(本部)]20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业-2...
1.[奥鹏]-南开大学(本部)20秋学期(1709.1803.1809.1903.1909.2003.2009 )程序设计基础(下)在线作业试卷总分:100 得分:100第1题,在一棵度为4的树中,度 ...
- C++程序设计基础,数组实验(题干信息:某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超30人参加考试,具体问题在下面)
(1)计算每个学生的总分和平均分: (2)按总分成绩由高到低排出成绩的名次: (3)打印出名次表,表格内包括学生编号.各科分数.总分和平均分: (4)任意输入一个学号,能够查找出该学生在班级中的排名及 ...
- java程序面向对象show,20165309 实验二 Java面向对象程序设计
2017-2018-2 20165309实验二<Java面向对象程序设计>实验报告 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初 ...
- 《程序设计基础II》实验3——递推
A - 养兔子 Description 一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子.第一天某人领养了一对成熟的兔子,一公一母 ...
- 【C语言入门】SDUT《程序设计基础I 》实验2-选择结构程序设计题解 c语言语法讲解
题目链接 A - C语言实验--求绝对值(选择结构) 使用if选择语句, 大于等于 0 直接输出, 小于 0 输出 -x 即可 拓展: 求绝对值的函数 <math.h>头文件下有abs() ...
- matlab程序设计基础m文件,实验五 M文件和MATLAB程序设计.doc
实验五 M文件和MATLAB程序设计 第 PAGE \* Arabic \* MERGEFORMAT 10 页 实验五 M文件和MATLAB程序设计 一.实验目的 matlab作为一种高级计算机语言, ...
最新文章
- 换换口味,体验一下Mandriva
- 超出网络bios会话限制_?老旧BIOS说再见,拯救者系列设置超简单
- [Python爬虫] 之二十七:Selenium +phantomjs 利用 pyquery抓取今日头条视频
- Java多线程编程系列-实例变量和线程安全
- clickjacking:X-frame-options header missing 漏洞解决办法
- .set伪指令(mips)
- Struts2零配置属性详解(2)
- Django模型(model)系统
- litepal更新数据失败
- 计算机文件图标怎么一致大小,电脑图标大小设置的几种方法
- 计算机端最好用的词典——GoldenDict
- 旧手机上的微信数据丢失怎么才能恢复回来
- 学以致用——Excel报表自动化方案 (Automation solution of complicated manual Excel Report)
- 电脑通过二维码打开手机链接
- 如何爬取商品详情页中的信息
- C语言编辑bmi计算器,使用事件处理程序的BMI计算器计算
- 安卓中Paint与Canvas用法
- 【面试总结】测试开发面试题目
- SQL create file遇到操作系统错误5拒绝访问
- kruskal java_Kruskal算法java版