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

作业--数组

一、单选题
1. 第7周测验
2. 第7周 练兵区——单选题

二、编程题

1. 从键盘输入某班学生的学号和某门课成绩(每班人数最多不超过40人,具体人数由键盘输入),试编程打印最高分和最低分以及对应的学生序号。

#include <stdio.h> #include <stdlib.h> int main() { int n; printf("renshu:n="); scanf("%d",&n); int id[40]; int cg[40]; for(int i=0;i<n;i++) scanf("%d,%d",&id[i],&cg[i]); int max=0; for(int i=0;i<n;i++){ if(cg[i]>cg[max]) max=i; } int min=0; for(int i=0;i<n;i++){ if(cg[i]<cg[min]) min=i; } printf("max: id:%d,cg:%d\n",id[max],cg[max]); printf("min: id:%d,cg:%d\n",id[min],cg[min]); return 0; }

2. 编写实现下面的功能(分别用函数实现)
(1)读入一串整型数据,直到输入0,作为输入结束标志为止;
(2)把这些整型数据逆序排列;
(3)输出经过重新排列后的数据;

#include <stdio.h> #include <stdlib.h> int a[100]; int n=0; void A(){ while(scanf("%d",&a[n])&&a[n]!=0) n++; } void B(int b[100]){ int m=0; for(int i=n-1;i>=0;i--){ b[m]=a[i]; m++; } } void C(){ int b[100]; B(b); for(int i=0;i<n;i++){ printf("%d",b[i]); printf(" "); } } int main() { A(); C(); return 0; }

3. 编程在元素按增(降)序排列的一个有序数组中,查找给定元素x。(分别采用顺序查找和二分查找函数来实现)。
函数返回值规定如下:如果x出现在数组中,则返回x在数组中的位置(用下标表示),否则返回-1。

#include <stdio.h> #include <stdlib.h> int shunxu(int a[],int n){ int i=0; for(;i<=8;i++){ if(n==a[i]){ return i; } } return -1; } int erfen(int a[],int n){ int low=0,high=8,mid; while(low<=high){ int mid=(low+high)/2; if(n==a[mid]) return mid; else if(n>a[mid]) low=mid+1; else if(n<a[mid]) high=mid-1; } return -1; } int main(){ int n; int a[]={1,2,3,4,5,6,7,8,9}; for(int i=0;i<=8;i++){ printf("%d ",a[i]); } printf("\n"); scanf("%d",&n); printf("%d\n",shunxu(a,n)); printf("%d\n",erfen(a,n)); return 0; }

4. 输入一个有序数列,对数列中的数据进行排序。(分别采用交换排序、冒泡排序、选择排序、插入排序函数来实现)。

#include <stdio.h> #include <stdlib.h> int jiaohuan(int a[],int n); int main(){ int a[]={2,8,4,6,5,7,3}; int n=sizeof(a)/sizeof(a[0]); jiaohuan(a,n); for(int i=0;i<n;i++){ printf("%d",a[i]); printf(" "); } return 0; } int jiaohuan(int a[],int n){ int m; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++){ if(a[i]>a[j]){ m=a[i]; a[i]=a[j]; a[j]=m; } } }
#include <stdio.h> #include <stdlib.h> int maopao(int a[],int n); int main(){ int a[]={2,8,4,6,5,7,3}; int n=sizeof(a)/sizeof(a[0]); maopao(a,n); for(int i=0;i<n;i++){ printf("%d",a[i]); printf(" "); } return 0; } int maopao(int a[],int n){ int m=0; for(int i=0;i<n-1;i++) for(int j=0;j<n-1-i;j++) if(a[j]>a[j+1]){ m=a[j]; a[j]=a[j+1]; a[j+1]=m; } }
#include <stdio.h> #include <stdlib.h> int xuanze(int a[],int n); int main(){ int a[]={2,8,4,6,5,7,3}; int n=sizeof(a)/sizeof(a[0]); xuanze(a,n); for(int i=0;i<n;i++){ printf("%d",a[i]); printf(" "); } return 0; } int xuanze(int a[],int n){ for(int i=0;i<n-1;i++){ int min=i; int j=i+1; int m; for(;j<n;j++){ if(a[j]<a[min]) min=j; } m=a[i]; a[i]=a[min]; a[min]=m; } }
#include <stdio.h> #include <stdlib.h> int charu(int a[],int n); int main(){ int a[]={2,8,4,6,5,7,3}; int n=sizeof(a)/sizeof(a[0]); charu(a,n); for(int i=0;i<n;i++){ printf("%d",a[i]); printf(" "); } return 0; } int charu(int a[],int n){ for(int i=1;i<n;i++){ int key=a[i]; int j=i-1; while(j>=0&&a[j]>key){ a[j+1]=a[j]; j--; } a[j+1]=key; } }

5. 输入一个有序数列,再输入一个指定的数,将其插入到一有序数列中,使该数列仍保持原来的顺序。

#include <stdio.h> #include <stdlib.h> int main(){ int a[]={2,4,6,8}; int b[5]={2,4,6,8}; int n; scanf("%d",&n); b[4]=n; int key=b[4]; int j=3; while(j>=0&&a[j]>key){ b[j+1]=b[j]; j--; } b[j+1]=key; for(int i=0;i<=4;i++) printf("%d ",b[i]); return 0; }

6. 输入一个有序数列,再输入一个指定的数,将其从有序数列中删除。

#include <stdio.h> #include <stdlib.h> int main(){ int a[]={2,4,6,8,10}; int n; scanf("%d",&n); for(int i=0;i<5;i++) if(a[i]==n){ for(;i<4;i++) a[i]=a[i+1]; break; } for(int i=0;i<4;i++) printf("%d ",a[i]); return 0; }

http://www.cnnetsun.cn/news/114790.html

相关文章:

  • AI大模型:未来就业的吞噬者还是创造者?揭秘其对普通人工作的影响!
  • 0x3f第七天 二叉搜索树
  • 扩容U盘,资料毁灭盘
  • 数据结构学习篇(5)---顺序表和链表的区别
  • 基于Vue.js和Spring Boot的新能源汽车充电站管理系统的设计与实现文献综述
  • 【Matlab】代码库:RGB三通道图像←互转→RGB次序平铺二维
  • 使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)
  • Vue3+Monaco Editor封装及SQL编辑器实现
  • MiniCPM-V 4.5
  • Flutter工程化与协作实践指南
  • Excel技巧:提取身份证号码中的出生年月日
  • 软工毕业设计创新的开题分享
  • Oracle数据库物理备份与恢复实战指南
  • 告别“养死”魔咒!AI+知识库+物联网,打造零失败智能种植系统(附架构图+实操指南)
  • 安卓基础之《(4)—Activity组件(2)》
  • 打破数据堵点:6 大主流CRM厂商全链路数据流转能力横评与选型指南
  • 小程序毕设项目:基于springboot+微信小程序的校园活动管理系统设计与实现(源码+文档,讲解、 调试运行,定制等)
  • 小程序毕设项目:基于springboot+微信小程序的DIY电脑推荐与交流平台(源码+文档,讲解、 调试运行,定制等)
  • 小程序毕设项目:基于springboot+微信小程序的在线复习小程序(源码+文档,讲解、 调试运行,定制等)
  • 安徽做SCARA机器人的公司有哪些?
  • 【JavaWeb】MVC模式_理论简介
  • 【JavaWeb】日程管理01——登录页及数据校验功能
  • springboot中File默认路径
  • 【2025年AI 编程时代的热点】
  • 【C++ 笔记】从 C 到 C++:核心过渡 (中)
  • SQL约束解析
  • 地铁调研12-17
  • 现代软件测试工具全景对比与选型指南
  • 基于 Apache POI 的体检报告 Word 生成实战文档
  • org.jetbrains.annotations的@Nullable 学习