通过键盘输入10个数保存于一维数组中,要求输出最大值,最小值和所有数据和。C语言
时间: 2024-05-05 20:17:52 浏览: 123
没问题,以下是C语言代码实现:
```
#include <stdio.h>
int main()
{
int nums[10]; // 定义一个长度为10的整型数组
int i, max, min, sum;
// 通过循环输入10个数
for (i = 0; i < 10; i++) {
printf("请输入第%d个数:", i + 1);
scanf("%d", &nums[i]);
}
// 计算最大值、最小值和所有数据和
max = min = sum = nums[0]; // 先以第一个数初始化
for (i = 1; i < 10; i++) {
if (nums[i] > max) {
max = nums[i];
}
if (nums[i] < min) {
min = nums[i];
}
sum += nums[i];
}
// 输出结果
printf("最大值:%d\n最小值:%d\n所有数据和:%d\n", max, min, sum);
return 0;
}
```
希望能够帮到你,还有什么问题可以继续问我哦~
相关问题
、十个数字外部输入到一维数组中,并输出一维数组 中的最大值和最小值、数组中的数按“从大到小”之 进行排列用c语言编写
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 定义一个动态的一维数组并获取用户输入的十个数字。
2. 计算并存储最大值和最小值。
3. 对数组进行排序,从大到小。
4. 输出结果。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 功能:计算数组的最大值和最小值
void findMinMax(int arr[], int size, int* min, int* max) {
*min = arr[0];
*max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > *max)
*max = arr[i];
else if (arr[i] < *min)
*min = arr[i];
}
}
// 冒泡排序函数,从大到小
void bubbleSortDesc(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int size, num;
printf("请输入数组长度(10以内): ");
scanf("%d", &size);
// 确保大小不超过10
if (size > 10) {
printf("输入错误,数组长度不能超过10。\n");
return 0;
}
int* arr = malloc(size * sizeof(int));
if (!arr) {
printf("内存分配失败。\n");
return 0;
}
printf("请输入10个数字: ");
for (int i = 0; i < size; i++) {
scanf("%d", &num);
arr[i] = num;
}
int min, max;
findMinMax(arr, size, &min, &max);
printf("最大值: %d\n", max);
printf("最小值: %d\n", min);
bubbleSortDesc(arr, size); // 排序数组
printf("数组从大到小排序: ");
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
free(arr);
return 0;
}
```
C语言:编写一个程序,实现将一维数组中的最大值和最小值对换位置。主函数中为一维数组输入10哥整数,并输出结果
好的,以下是您所需的 C 代码:
```c
#include <stdio.h>
void swap(int *a, int *b) { // 交换函数
int temp = *a;
*a = *b;
*b = temp;
}
void swapMaxMin(int arr[], int n) { // 交换最大值和最小值位置的函数
int maxIndex = 0, minIndex = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
swap(&arr[maxIndex], &arr[minIndex]);
}
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
swapMaxMin(arr, 10);
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
注意:由于题目要求是将最大值和最小值对换位置,因此我们需要先找到数组中的最大值和最小值的下标,然后再用一个交换函数来实现它们的位置对换。
阅读全文