#include<stdio.h> int main() { int n,m,size,a[size],max,min; printf("请输入数据的长度:"); scanf("%d",&size); printf("请输入数据:"); for(n=0;n<size;n++) { scanf("%d",&a[n]); } max=a[0]; min=a[0]; for(n=1;n<size;n++) { if(a[n]<min) { min=a[n]; } if(a[n]>max) { max=a[n]; } } printf("最大值为%d\n最小值为%d\n",max ,min); return 0; }帮我简化
时间: 2024-04-15 13:29:56 浏览: 24
你的代码可以简化如下:
```c
#include <stdio.h>
int main() {
int size;
printf("请输入数据的长度: ");
scanf("%d", &size);
int a[size];
printf("请输入数据: ");
for (int n = 0; n < size; n++) {
scanf("%d", &a[n]);
}
int max = a[0];
int min = a[0];
for (int n = 1; n < size; n++) {
if (a[n] < min) {
min = a[n];
}
if (a[n] > max) {
max = a[n];
}
}
printf("最大值为 %d\n最小值为 %d\n", max, min);
return 0;
}
```
这样简化后的代码保留了原有的功能,但使得结构更加清晰易读。
相关问题
求一批数中最大值和最小值的积 #include <stulib.h> #include <stdio.h> #define N 30
这是一个求一批数中最大值和最小值的积的代码模板,其中 #define N 30 定义了数组的长度为 30。下面是完整的代码:
```
#include <stdio.h>
#define N 30
int main() {
int a[N];
int n, i, max, min;
// 读入数据
printf("请输入数据个数:");
scanf("%d", &n);
printf("请输入 %d 个数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 求最大值和最小值
max = min = a;
for (i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
if (a[i] < min) {
min = a[i];
}
}
// 输出结果
printf("最大值为 %d,最小值为 %d,它们的积为 %d\n", max, min, max * min);
return 0;
}
```
#include <stdio.h> #include <limits.h> int find_max(int arr[]) { int max = INT_MIN; int i; for(i =0;i<=sizeof(arr)/sizeof(int);i++) { if(arr[i]>max) { max = arr[i]; } } return max; } int main(int argc, char const *argv[]) { int arr[]={1,2,3,4,5}; int max = find_max(arr); printf("MAX:%d",max); return 0; }修改代码
这段代码的问题在于sizeof(arr)/sizeof(int)这部分的计算方式是错误的,因为在函数中传递的数组参数arr在编译时会转换为指针类型,因此sizeof(arr)将返回指针类型的字节数,而不是数组的元素个数。因此,我们需要在函数中传递数组的大小,或者使用一个标记来表示数组的结尾。
以下是修改后的代码:
```
#include <stdio.h>
#include <limits.h>
int find_max(int arr[], int size) {
int max = INT_MIN;
int i;
for(i = 0; i < size; i++) {
if(arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main(int argc, char const *argv[]) {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(int);
int max = find_max(arr, size);
printf("MAX:%d", max);
return 0;
}
```
在这个修改后的代码中,我们在调用find_max函数时传递了数组的大小,这样就可以在函数中正确地遍历整个数组。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)