news 2026/8/23 11:05:57

作业--数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
作业--数组

一、单选题
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; }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:33:50

0x3f第七天 二叉搜索树

1.前序遍历&#xff1a;4213657先验证根是否满足大于左子树最大值&#xff0c;小于右子树最小值遍历左子树&#xff08;更新右值&#xff09;遍历右子树&#xff08;更新左值&#xff09;对于最大值和最小值&#xff0c;可以直接在函数里加上def isValidBST(self, root: Option…

作者头像 李华
网站建设 2026/8/21 16:33:50

扩容U盘,资料毁灭盘

早就听过扩容盘了&#xff0c;没想到也发生在我身上。原本上面是印着长城的 &#xff0c;但现在掉漆了。店铺现在这个商品下架了&#xff0c;但店铺是有品牌认证的这个U盘也算是用了将近4年了&#xff0c;存的都是大学的上课的作业。大四没课回家了几个月没有使用过这个U盘&…

作者头像 李华
网站建设 2026/8/22 23:52:08

数据结构学习篇(5)---顺序表和链表的区别

对于顺序表和链表的异同&#xff0c;上面这个表格直观展示了两者的不同之处&#xff0c;有几点可以做一下解释&#xff1a;顺序表和链表在逻辑结构上都是连续的&#xff0c;但是在物理结构&#xff0c;也就是存储空间上&#xff0c;顺序表是连续的&#xff0c;因为他的本质是数…

作者头像 李华
网站建设 2026/8/22 22:20:35

【Matlab】代码库:RGB三通道图像←互转→RGB次序平铺二维

本文介绍了两种MATLAB图像转换方法&#xff1a;1) 将3D RGB图像转换为2D平铺格式&#xff0c;通过向量化操作将RGB通道展开为连续列&#xff0c;并将8位数据扩展到12位&#xff1b;2) 将2D平铺图像还原为3D RGB格式&#xff0c;通过反向操作分离通道并压缩回8位。两种方法均提供…

作者头像 李华