文章目录
-
- 概要
- 整体架构流程
- 技术名词解释
- 代码分析
- 小结
概要
本文将介绍一个用户输入处理的程序,其中包括从数组中寻找最小和最大值,并通过计算找出丢失的值的功能。以下是整体架构流程,技术名词解释,技术细节和小结。
整体架构流程
- 用户输入:程序接收用户输入的数组。
- 寻找最小和最大值:通过遍历数组找到其中的最小值和最大值。
- 计算丢失的值:根据数组的范围和已有值的列表,计算出缺失的值。
技术名词解释
- 数组:一种数据结构,用于存储多个相同类型的数据元素。
- 最小值和最大值:数组中的最小和最大的数值。
- 计算:进行数学或逻辑操作以获取特定结果。
代码分享
while (1)
{
int array[10] = {0};
int size_array = 0;
printf("please input the sizo of the array\n");
scanf("%d", &size_array);
if (size_array < 0 || size_array > 9) // 限制取值范围
return -1;
for (int i = 0; i < size_array; i++)
{
printf("please input the %d number\n", i + 1);
scanf("%d", &array[i]);
// printf("the value of the %d number is: %d\n", i, array[i]);
if (array[i] < 0) // 47 < array[i] <58 48~57
{
printf("the input elements are not integers from figure\n");
i--; // 如果输入的为非0~9的数字,将本次循环的次数-1,希望下次还输入第i个数
continue;
}
}
int array_num_max = array[0]; // 假设数组内最大的数为array[0]
int array_num_min = array[0]; // 假设数组内最小的数为array[0]
int total_array_sum = 0; // 计算总共的大小
int total_size_array = sizeof(array) / sizeof(array[0]);
for (int i = 0; i < total_size_array - 1; i++) // 拿到数组内最大的数和最小的数
{
for (int j = i + 1; j < total_size_array; j++)
{
if (array[j] > array_num_max)
array_num_max = array[j];
if (array[j] < array_num_min && array[j] != 0)
array_num_min = array[j];
}
}
// printf("array_num_max :%d\n", array_num_max);
// printf("array_num_min :%d\n", array_num_min);
if (array_num_max == array_num_min + size_array)
{
// 计算从最小数加到最大数的大小
for (int i = 0; i < size_array + 1; i++)
{
total_array_sum += array_num_min;
array_num_min++;
}
// printf("total_array_sum: %d\n", total_array_sum);
// 计算实际的大小
int actual_array_sum = 0;
for (int i = 0; i < size_array; i++)
actual_array_sum += array[i];
// printf("actual_array_sum: %d\n", actual_array_sum);
memset(array, 0, sizeof(array));
int missing_number = total_array_sum - actual_array_sum;
printf("missing_number: %d\n", missing_number);
}
else
printf("The input data does not match the format. Please re-enter\n");
}
小结
通过编写一个程序,可以有效地处理用户输入的数组,并找到其中的最小和最大值,同时计算出可能丢失的值。