C语言 6-2 数组最小值(*) 分数 10 作者 李祥 单位 湖北经济学院 请编写函数,求整数数组元素的最小值。 函数原型 int ArrayMin(const int *array, int size); 说明:array 为数组的起始地址,size 为数组元素个数。函数值为数组元素的最小值。 裁判程序 #include <stdio.h> #include <stdlib.h> #define arraySize 1024 void ArrayInput(int *array, int size); int ArrayMin(const int *array, int size); int main() { int a[arraySize]; int n; scanf("%d", &n); ArrayInput(a, n); printf("%d\n", ArrayMin(a, n)); return 0; } ...... /* 你提交的代码将被嵌在这里 */ 说明:ArrayInput 函数输入数组。 输入样例 10 27 58 41 25 28 98 16 65 87 62 输出样例 16 注:只提交 ArrayMin 函数的代码。 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2024-03-17 21:44:59 浏览: 124
代码如下:
```
int ArrayMin(const int *array, int size) {
int min = array[0];
for(int i = 1; i < size; i++) {
if(array[i] < min) {
min = array[i];
}
}
return min;
}
```
解析:
本题实现一个函数,求整数数组元素的最小值。
函数原型为 `int ArrayMin(const int *array, int size)`,参数为整型指针 `array` 和整型变量 `size`,分别表示数组的起始地址和元素个数。
首先定义一个变量 `min`,初始化为数组的第一个元素 `array[0]`。然后遍历数组,如果当前元素 `array[i]` 小于 `min`,则将 `min` 更新为 `array[i]`。最后返回 `min` 即可。
注:本题只需要提交 `ArrayMin` 函数的代码。
相关问题
编写一个函数,接受字符串 ‘6-1-2 * 分数 10 作者李祥 单位湖北经济学院’ 作为输入,目标是返回该字符串中’*'左边的所有内容,包括空格和标点。这个函数应如何设计? 用c语言
你可以使用C语言编写一个简单的函数来处理这个问题。这里可以使用指针和循环来找到星号前的部分。下面是一个可能的函数设计:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
char* get_before_star(const char* input);
// 实现函数
char* get_before_star(const char* input) {
int len = strlen(input); // 获取字符串长度
for (int i = 0; i < len; i++) {
if (input[i] == '*') { // 找到星号位置
return (char*) &input[0]; // 返回直到星号的位置,即整个左侧部分的地址
}
}
return input; // 如果没有找到星号,直接返回原串
}
int main() {
const char* str = "6-1-2 * 分数 10 作者李祥 单位湖北经济学院";
char* result = get_before_star(str);
printf("'%s' 星号左边的内容: %s\n", str, result);
free(result); // 释放内存,因为只复制了数据,不是整个字符串
return 0;
}
```
在这个函数中,我们遍历输入字符串,当遇到'*'字符时,停止并返回从开始到那个位置的内存地址。如果没有找到'*',则返回整个输入。
6-2 求总天数 分数 10 作者 李祥 单位 湖北经济学院 请编写函数,根据所给日期求从公元纪年开始到该日期的总天数。 函数原型 int TotalDay(int year, int month, int day);
这个题目要求编写一个名为 `TotalDay` 的函数,它接受三个整数参数:年份 (`year`)、月份 (`month`) 和日期 (`day`),用于计算从公元1年到指定日期(包括该日期)总共的天数。这是一个涉及到历法计算的问题,需要考虑到闰年的规则。
在格里高利历中(即公历),闰年的判断条件通常如下:
- 如果年份能被4整除,那么它是闰年;
- 但是,如果年份能够被100整除,它不是闰年;
- 然而,如果年份同时能被400整除,它又是闰年。
下面是根据这个规则编写的一个简单的 `TotalDay` 函数示例(假设函数采用的是每月天数固定的普通算法,不考虑二月29日的情况):
```c
#include <stdio.h>
int isLeapYear(int year) {
if (year % 4 == 0) {
if (year % 100 == 0) {
return year % 400 == 0;
} else {
return true;
}
}
return false;
}
int daysInMonth(int month, bool isLeapYear) {
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
default: // 2月
return isLeapYear ? 29 : 28; // 考虑闰年和平年
}
}
int TotalDay(int year, int month, int day) {
int totalDays = 0;
for (int y = 1; y <= year; ++y) {
totalDays += isLeapYear(y) ? 366 : 365; // 计算前一年的天数
}
for (int m = 1; m < month; ++m) {
totalDays += daysInMonth(m, isLeapYear(year));
}
totalDays += day; // 加上当前月份的天数
return totalDays;
}
// 示例
int main() {
int year, month, day;
printf("请输入年月日(例如:2023 2 28): ");
scanf("%d %d %d", &year, &month, &day);
int total = TotalDay(year, month, day);
printf("从公元1年到%04d-%02d-%02d的总天数是:%d\n", year, month, day, total);
return 0;
}
```
阅读全文