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 11:44:59 浏览: 43
代码如下:
```
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 判断日期 分数 20 作者 李祥 单位 湖北经济学院 请编写函数,判断日期是否有效。 函数原型 int IsValidDate(int year, int month, int day);
好的,根据您的要求,我为您编写了如下的函数,用于判断给定的日期是否合法:
```
int IsValidDate(int year, int month, int day) {
if (year < 1 || month < 1 || month > 12 || day < 1) {
return 0;
}
int max_day = 31;
if (month == 4 || month == 6 || month == 9 || month == 11) {
max_day = 30;
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
max_day = 29;
} else {
max_day = 28;
}
}
return day <= max_day;
}
```
这个函数接受三个参数:年份、月份和日期,返回一个整数值,如果日期是合法的,则返回1,否则返回0。
该函数的实现思路如下:
首先,如果年份、月份或日期中有任何一个小于1,则该日期无效,直接返回0。
其次,根据每个月的天数以及闰年的情况,计算该月最大的天数。对于4、6、9、11月,最大天数为30;对于2月,如果是闰年,则最大天数为29,否则为28;其余月份最大天数为31。
最后,比较给定的日期是否小于等于该月最大天数,如果是,则该日期有效,返回1,否则返回0。
希望这个函数能够满足您的需求!
-7 串逆置* 分数 10 作者 李祥 单位 湖北经济学院 请编写函数,将字符串逆置。 函数原型 char* StrReverse(char *str); 说明:str 为字符串起始地址。函数将字符串内容逆置,函数值为 str。 裁判程序 #include <stdio.h> void ChrSwap(char *x, char *y); char* StrReverse(char *str); int main() { char a[128]; gets(a); StrReverse(a); puts(a); return 0; } ...... /* 你的代码将被嵌在这里 */ 说明:ChrSwap 函数用于交换两个字符。
实现字符串逆置的代码如下:
```
void ChrSwap(char *x, char *y) {
char temp = *x;
*x = *y;
*y = temp;
}
char* StrReverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
ChrSwap(&str[i], &str[len - i - 1]);
}
return str;
}
```
在主函数中,先读入字符串,然后调用 StrReverse 函数逆置字符串,最后输出结果即可。注意,使用 gets 函数存在安全风险,建议使用 fgets 函数代替。
完整的程序如下:
```
#include <stdio.h>
#include <string.h>
void ChrSwap(char *x, char *y) {
char temp = *x;
*x = *y;
*y = temp;
}
char* StrReverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
ChrSwap(&str[i], &str[len - i - 1]);
}
return str;
}
int main() {
char a[128];
fgets(a, 128, stdin);
StrReverse(a);
puts(a);
return 0;
}
```