收藏 分销(赏)

数组使用.doc

上传人:a199****6536 文档编号:3561401 上传时间:2024-07-09 格式:DOC 页数:12 大小:74.50KB 下载积分:8 金币
下载 相关 举报
数组使用.doc_第1页
第1页 / 共12页
数组使用.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
第2练 以下题目在实验室上机完成,并用程序评测系统评测上机成绩。打开相关源程序后,只能在//********与//=======之间编写程序,若修改源程序的其它部分,可能得0分。 第一套 A. 教师示范题(C4_1A.cpp) 【题目描述】 一维数组a中有10个整数,编写一个程序输出这组数中的最大值。 【输入】 输入文件C4_1A.in有1行,包含10个整数,整数之间用空格隔开。 【输出】 输出文件C4_1A.out有1行,包含1个整数,即数组a中最大值。 【输入输出样例1】 C4_1A.in C4_1A.out 8 67 29 59 11 53 69 37 26 91 91 【输入输出样例2】 C4_1A.in C4_1A.out 3 21 5 98 44 12 1 1 67 61 98 【数据限制】 0≤a[i]≤200 #include <stdio.h> int main() { int a[10]; int i,max; freopen("C4_1A.in", "r", stdin); freopen("C4_1A.out", "w", stdout); for (i=0;i<10;i++) scanf("%d",&a[i]); //********************************* //一维数组a中有10个整数,编写一个程序输出这组数中的最大值。 max=a[0]; for(i=0;i<10;i++) { if(max<a[i]) max=a[i]; } //================================= printf("%d",max); return 0; } B. 学生模拟题(C4_1B.cpp) 【题目描述】 一维数组a中有20个整数,编写一个程序输出这组数中的最小值。 【输入】 输入文件C4_1B.in有1行,包含20个整数,整数之间用空格隔开。 【输出】 输出文件C4_1B.out有1行,包含1个整数,即数组a中最小值。 【输入输出样例1】 C4_1B.in C4_1B.out 3 21 5 98 44 12 64 77 66 96 76 67 61 2 13 16 9 78 56 69 2 【输入输出样例2】 C4_1B.in C4_1B.out 79 88 35 157 89 76 35 58 65 90 73 36 47 98 55 65 70 38 93 152 35 【数据限制】 0≤a[i]≤200 #include <stdio.h> int main() { int a[20]; int i,min; freopen("C4_1B.in", "r", stdin); freopen("C4_1B.out", "w", stdout); for (i=0;i<20;i++) scanf("%d",&a[i]); //*********************************** //一维数组a中有20个整数,编写一个程序输出这组数中的最小值。 min=a[0]; for(i=0;i<20;i++) { if(min>a[i]) min=a[i]; } //=================================== printf("%d",min); return 0; } C. 拓展题(C4_1C.cpp) 【题目描述】 一维数组a中有10个整数,编写一个程序输出这组数中的平均值并求有多少个数超过平均值。 【输入】 输入文件C4_1C.in有1行,包含10个整数,整数之间用空格隔开。 【输出】 输入文件C4_1C.in有1行,包含2个数,分别是平均值(保留一位小数)和超过平均值的个数,两个数之间用空格隔开。 【输入输出样例1】 C4_1C.in C4_1C.out 57 89 76 35 58 65 90 73 36 47 62.6 5 【输入输出样例2】 C4_1C.in C4_1C.out 98 44 12 64 5 66 2 76 67 61 49.5 6 【数据限制】 0≤a[i]≤200 #include <stdio.h> int main() { int a[10]; int i,sum; float avg; freopen("C4_1C.in", "r", stdin); freopen("C4_1C.out", "w", stdout); for (i=0;i<10;i++) scanf("%d",&a[i]); //************************************ //一维数组a中有10个整数,编写一个程序输出这组数中的平均值并求有多少个数超过平均值。 sum=0; for(i=0;i<10;i++) { sum+=a[i]; } avg=sum/(i*1.0);//保留一位小数 sum=0; for(i=0;i<10;i++) { if(a[i]>avg) sum++; } //==================================== printf("%3.1f %d",avg,sum); return 0; } 第二套 A. 教师示范题(C4_2A.cpp) 【题目描述】 一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中第k个(0≤k≤n-1)元素删除。 【输入】 输入文件C4_2A.in有2行,第1行有2个整数分别表示n和k,整数之间用空格隔开;第2行有n个整数表示数组a中的各个元素,整数之间用空格隔开。 【输出】 输出文件C4_2A.out有1行,包含n-1个整数,即删除后数组中的各个元素,整数之间用空格隔开。 【输入输出样例1】 C4_2A.in C4_2A.out 10 5 23 21 5 98 19 12 6 10 8 61 23 21 5 98 19 6 10 8 61 【输入输出样例2】 C4_2A.in C4_2A.out 20 11 23 21 5 98 19 12 6 10 8 61 89 67 56 34 56 32 67 87 45 32 23 21 5 98 19 12 6 10 8 61 89 56 34 56 32 67 87 45 32 【数据限制】 0≤a[i]≤100 #include <stdio.h> int main() { int a[100]={0}; int n,i,k; freopen("C4_2A.in", "r", stdin); // freopen("C4_2A.out", "w", stdout); scanf("%d%d",&n,&k); for (i=0;i<n;i++) scanf("%d",&a[i]); //********************************* //一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中第k个(0 ≤k≤n-1)元素删除。 for(i=k;i<n;i++) { a[i]=a[i+1]; } for(i=0;i<n-1;i++) printf("%d ",a[i]); //================================= return 0; } B. 学生模拟题(C4_2B.cpp) 【题目描述】 一维数组a中有n(0<n<99)个整数,编写一个程序在数组a中第k位置(0≤k≤n-1)插入一个元素d。 【输入】 输入文件C4_2B.in有2行,第1行有3个整数分别表示n、k和d,整数之间用空格隔开;第2行有n个整数表示数组a中的各个元素,整数之间用空格隔开。 【输出】 输出文件C4_2B.out有1行,包含n+1个整数,即插入后数组中的各个元素,整数之间用空格隔开。 【输入输出样例1】 C4_2B.in C4_2A.out 10 5 78 23 21 5 98 19 12 6 10 8 61 23 21 5 98 19 78 12 6 10 8 61 【输入输出样例2】 C4_2B.in C4_2B.out 20 16 91 23 21 5 98 19 12 6 10 8 61 89 67 56 34 56 32 67 87 45 32 23 21 5 98 19 12 6 10 8 61 89 67 56 34 56 32 91 67 87 45 32 【数据限制】 0≤a[i]≤100 #include <stdio.h> int main() { int a[100]={0}; int n,i,k,d; freopen("C4_2B.in", "r", stdin); freopen("C4_2B.out", "w", stdout); scanf("%d%d%d",&n,&k,&d); for (i=0;i<n;i++) scanf("%d",&a[i]); //********************************* //一维数组a中有n(0<n<99)个整数,编写一个程序在数组a中第k位置(0≤k≤n-1)插入一个元素d。 for(i=n;i>=k;i--) { a[i+1]=a[i]; if(i==k) { a[i]=d; } } for(i=0;i<n+1;i++) { printf("%d ",a[i]); } //================================= return 0; } C. 拓展题(C4_2C.cpp) 【题目描述】 一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中所有值为d的元素删除。 【输入】 输入文件C4_2C.in有2行,第1行有2个整数分别表示n和d,整数之间用空格隔开;第2行有n个整数表示数组a中的各个元素,整数之间用空格隔开。 【输出】 输出文件C4_2C.out有1行,即删除后数组中的各个元素,整数之间用空格隔开。 【输入输出样例1】 C4_2C.in C4_2C.out 10 21 23 21 5 98 19 21 6 10 8 61 23 5 98 19 6 10 8 61 【输入输出样例2】 C4_2C.in C4_2C.out 20 56 23 21 5 98 56 12 6 10 8 61 89 67 56 34 56 56 67 87 45 32 23 21 5 98 12 6 10 8 61 89 67 34 67 87 45 32 【数据限制】 0≤a[i]≤100 #include <stdio.h> int main() { int a[100]={0}; int n,i,j,d,m; freopen("C4_2C.in", "r", stdin); freopen("C4_2C.out", "w", stdout); scanf("%d%d",&n,&d); for (i=0;i<n;i++) scanf("%d",&a[i]); //************************************* //一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中所有值为d的元素删除。 for(i=0;i<n;i++) { if(a[i]==d) { for(j=i;j<n-1;j++) a[j]=a[j+1]; n--; i--; } } for(i=0;i<n;i++) { printf("%d ",a[i]); } /* for(i=0;i<n;i++) { if(a[i]!=d) { printf("%d",a[i]); if(i!=n-1) printf(" "); } } */ /* j=0; for(i=0;i<n;i++) { if(a[i]!=d) { a[j]=a[i]; j++; } } for(i=0;i<j;i++) { printf("%d ",a[i]); } */ //===================================== return 0; } 第三套 A. 教师示范题(C4_3A.cpp) 【题目描述】 有一个4行5列的二维数组b,编写一个程序计算每一行的总和,并将此和顺序存放在一个长度为4的一维数组中,最后按顺序输出该一维数组。 【输入】 输入文件C4_3A.in有4行,每行有5个整数,整数之间用空格隔开。 【输出】 输出文件C4_3A.out有1行,包含4个整数,即每行的总和,整数之间用空格隔开。 【输入输出样例1】 C4_3A.in C4_3A.out 3 21 5 98 10 44 12 1 12 8 67 61 45 67 17 35 36 78 90 19 137 77 257 258 【输入输出样例2】 C4_3A.in C4_3A.out 13 21 55 98 47 12 18 19 67 61 89 90 36 78 10 89 87 67 90 12 234 177 303 345 【数据限制】 0≤b[i][j]≤100 B. 学生模拟题(C4_3B.cpp) 【题目描述】 有一个4行5列的二维数组b,编写一个程序计算每一列的总和,并将此和顺序存放在一个长度为5的一维数组中,最后按顺序输出该一维数组。 【输入】 输入文件C4_3B.in有4行,每行有5个整数,整数之间用空格隔开。 【输出】 输出文件C4_3B.out有1行,包含5个整数,即每列的总和,整数之间用空格隔开。 【输入输出样例1】 C4_3B.in C4_3B.out 3 21 5 98 10 44 12 1 12 8 67 61 45 67 17 35 36 78 90 19 149 130 129 267 54 【输入输出样例2】 C4_3B.in C4_3B.out 13 21 55 98 47 12 18 19 67 61 89 90 36 78 10 89 87 67 90 12 203 216 177 333 130 【数据限制】 0≤b[i][j]≤100 #include <stdio.h> int main() { int b[4][5],a[5]={0}; int i,j; freopen("C4_3B.in", "r", stdin); freopen("C4_3B.out", "w", stdout); for (i=0;i<4;i++) for (j=0;j<5;j++) scanf("%d",&b[i][j]); //************************************ //有一个4行5列的二维数组b,编写一个程序计算每一列的总和,并将此和顺序存放在一个长度为5的一维数组中, //最后按顺序输出该一维数组。 for(i=0;i<4;i++) { for(j=0;j<5;j++) { a[j]+=b[i][j]; } } for(i=0;i<5;i++) { printf("%d ",a[i]); } //==================================== return 0; } C. 拓展题(C4_3C.cpp) 【题目描述】 有一个5行5列的矩阵(即二维数组b),要求以主对角线为对称线,将对称元素相加并将结果存放在下三角元素中,右上三角元素置为0。 【输入】 输入文件C4_3C.in有5行,每行有5个整数,整数之间用空格隔开。 【输出】 输出文件C4_3C.out有5行,每行有5个整数,整数之间用空格隔开。 【输入输出样例1】 C4_3C.in C4_3C.out 23 21 15 68 10 44 12 10 12 28 67 61 45 19 17 30 36 78 70 19 45 17 28 36 23 23 0 0 0 0 65 12 0 0 0 82 71 45 0 0 98 48 97 70 0 55 45 45 55 23 【输入输出样例2】 C4_3C.in C4_3C.out 10 20 30 21 22 12 18 19 67 61 29 60 36 15 10 22 27 17 10 12 13 21 55 21 47 10 0 0 0 0 32 18 0 0 0 59 79 36 0 0 43 94 32 10 0 35 82 65 33 47 【数据限制】 0≤b[i][j]≤100 #include <stdio.h> int main() { int b[5][5]; int i,j; freopen("C4_3C.in", "r", stdin); freopen("C4_3C.out", "w", stdout); for (i=0;i<5;i++) for (j=0;j<5;j++) scanf("%d",&b[i][j]); //************************************* //有一个5行5列的矩阵(即二维数组b),要求以主对角线为对称线,将对称元素相加并将结果存放在下三角元素中, //右上三角元素置为0。 for(i=0;i<=3;i++) { for(j=i+1;j<5;j++) { b[j][i]+=b[i][j]; b[i][j]=0; } } for(i=0;i<=4;i++) { for(j=0;j<=4;j++) { printf("%d",b[i][j]); if(j!=4) { printf(" "); } } printf("\n"); } //====================================== return 0; } (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服