【C语言答案】第六次练习(第二次月考题)---数组

2024-01-02 21:08

本文主要是介绍【C语言答案】第六次练习(第二次月考题)---数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下题目是由老师布置的《 谭浩强C程序设计(第四版)》的oj第四次练习题,共五道
使用软件是Devc++5.11。

希望大家抄了作业顺手点个赞,谢谢,爱宁

A. C语言_ex19_10

运行时间限制: 1000 运行内存限制: 65536

题目描述
罚时计算

众所周知OJ的排名跟罚时有关,那么罚时怎么计算呢?计算罚时有三条规则,一只有过了的题才计算罚时(没通过的题罚时为0);二、每题的罚时由两部分组成,一部分为考试开始到该题解题的时间(分钟数),另一部分为错误的提交次数乘以20分钟;三、总罚时为所有题目罚时的总和。现请你写一段程序来计算罚时。

输入:
第一行为一个整数n(0<n) ,代表本次考试的题目总数,后边n行每行代表均为三个用空格分隔的整数,分别代表这n道题的答题情况。这三个整数依次代表该题该题的结果(1代表通过,0代表未通过),通过的时间(未通过的为最后一次提交的时间),提交的次数。

输出:
为一个整数,代表总罚时。测试用例保证合法且所有整数可以用int存储。

输入样例
6
1 6 1
1 20 1
1 32 1
1 53 2
1 86 1
1 123 3
输出样例
380

#include<stdio.h>
int main()
{int n,a[1000][3],i,j,time[1000],sum;
scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++){if(a[i][0]!=1)continue;else time[i]=(a[i][1]+20*(a[i][2]-1));}sum=time[0];for(i=1;i<n;i++)sum=sum+time[i];printf("%d",sum);return 0;

注:这个第一题,我写的代码是要选择GUN C才能过,GUN c++加过不了!!我也不知道是为什么。。有没有大佬可以解释一下?

B. C语言_ex19_12

运行时间限制: 1000 运行内存限制: 65536

题目描述
请写程序计算数列中所有除以3余1且除以5余2的数的和。

输入:
第一行为一个整数n(0<n),代表n组测试用例。后边是n行,每行代表一组测试用例。每行中包含若干整数,以-1结束。测试用例保证每行只有最后一个数为-1,其他数均为正整数。

输出:
为n行,每行一个整数,对应n组测试用例,为求和的结果。测试用例保证合法且所有整数可以用int存储。

输入样例
3
7 13 22 -1
173 19 189 144 88 104 123 78 160 134 -1
108 2 183 153 179 100 71 8 145 37 62 124 55 49 33 159 168 129 151 119 39 154 45 66 134 42 185 30 187 -1
输出样例
29
0
224

#include <stdio.h>
int main()
{int n,a[1000][10000]={0},i,j,sum[100]={0};scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<10000;j++){scanf("%d",&a[i][j]);if(a[i][j]<0)break;}for(i=0;i<n;i++)for(j=0;j<10000;j++){if((a[i][j]%3==1)&&(a[i][j]%5==2))sum[i]=sum[i]+a[i][j];if(a[i][j]<0)break;}for(i=0;i<n;i++)printf("%d\n",sum[i]);return 0;}

C. C语言_ex19_14

运行时间限制: 1000 运行内存限制: 65536

题目描述
用’-‘(减号)、’+’(加号)、’|’(竖线)、’*’星号和空格打印方格。

输入格式
只有一行,为用空格分隔的两个整数l,c(0<l,c<10)。其中l和c分别代表格子的行数和列数。请看输入样例。
输出格式
每组测试用例输出一组(请看输出样例)。

输入样例
样例1:
2 3

样例2:
3 2
输出样例(我不知道会不会乱码,所以在下面贴了个图片)
样例1:
||||
| | | | | | |
|–±-|–±-|–±-|
| | | | | | |
|
|||
| | | | | | |
|–±-|–±-|–±-|
| | | | | | |
|||*****|

样例2:
|||
| | | | |
|–±-|–±-|
| | | | |
|||
| | | | |
|–±-|–±-|
| | | | |
|||
| | | | |
|–±-|–±-|
| | | | |
|||

#include<stdio.h>
int main()
{int l,c,a[10000][10],i,j;
scanf("%d %d",&c,&l);for(j=0;j<c;j++){for(i=0;i<l;i++)printf("|*****");printf("|\n");for(i=0;i<l;i++)printf("|  |  ");printf("|\n");			for(i=0;i<l;i++)printf("|--+--");printf("|\n");for(i=0;i<l;i++)printf("|  |  ");printf("|\n");}for(i=0;i<l;i++)printf("|*****");printf("|\n");return 0;}

注明:由于这个是考试时候的题,所以我觉得他就是来浪费时间的。。这种题仔细分类就vans了,记得打换行。

D. C语言_ex19_16

运行时间限制: 1000 运行内存限制: 65536

题目描述
现有一个矩阵,请你写程序求出某个数周围数字的和。这里我们规定,矩阵的左上角坐标为(1,1),它右边一行的数的坐标依次为(1,2)、(1,3)等等,它下边一列的数的坐标依次为(2,1)、(3,1)等等,其余坐标以此类推。

输入:
第一行为两个整数m,n(1<m,n<10),分别代表矩阵的行和列数。
接下来是m行n列整数,最后一行是两个整数x,y,分别代表指定的坐标。

输出:
为一个整数,为指定坐标周围的数字的和。需要注意的是当指定坐标在矩阵中间时,它周围有8个数,当它在矩阵边缘时它周围有5个数,当它在矩阵角上时它周围只有3个数。测试用例保证合法且所有整数可以用int存储。

输入样例
5 6
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
2 2
输出样例
64

#include<stdio.h>
int main()
{int m,n,a[12][12]={0},x,y,i,j,sum;
scanf("%d %d",&m,&n);for(i=1;i<m+1;i++)for(j=1;j<n+1;j++)scanf("%d",&a[i][j]);scanf("%d %d",&x,&y);sum=a[x-1][y-1]+a[x-1][y]+a[x-1][y+1]+a[x][y-1]+a[x][y+1]+a[x+1][y-1]+a[x+1][y]+a[x+1][y+1];printf("%d",sum);return 0;}

用给的草稿纸写一下更清楚,把周围的项都写出来。这个题也不难的,就是恶心

E. 习题课一

运行时间限制: 1000 运行内存限制: 65536

题目描述
计算导论与程序设计课程要开习题课,由于教室座位有限,所以决定限制参加人数。于是规定:1、最多允许一半的班级里的同学参加;2、可以参加的班级最多允许一半的同学参加。现请你写一段程序来计算习题课最多可能有多少个学生参加。

输入为两行,第一行为一个整数n(0<n<100),代表班级的个数,第二行为n个正整数,分别代表每个班级的人数。
输出只有一行,为能够参加习题课的人数的最大值。(当数字为奇数时,一半指的是该数减一后除以2,测试用例保证所有整数可以用 int 类型存储)

输入样例
5
4 5 6 7 8
输出样例
7

#include<stdio.h>
int main()
{int n,num[100]={0},i,j,t=0,ans=0;scanf("%d",&n);for (i=0;i<n;i++){scanf("%d",&num[i]);}for(j=0;j<n;j++)//这是一个降序冒泡排序。for(i=0;i<n-j-1;i++) if(num[i]<num[i+1]) //冒泡排序一定要熟悉我,因为这里写错了,查了好久,气死{ t=num[i]; num[i]=num[i+1]; num[i+1]=t; } if(n%2==1)n=n-1;//现在n一定是偶数了,可以直接除以二。n=n/2;for(i=0;i<n;i++){if(num[i]%2==1)num[i]=num[i]-1;//他这里是班级人数的一半,不可以先加在一起再除以二ans+=(num[i]/2);}
printf("%d",ans);}

这篇关于【C语言答案】第六次练习(第二次月考题)---数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/563651

相关文章

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st