c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

c语言大一期末考试题编程题数组

admin 2023-06-13编程经验
问题背景本次期末考试中,考生需要完成一道关于数组的编程题。该题目旨在考察考生对C语言数组的掌握程度,以及对基本控制流程的了解。题目的难度适中,涉及到数组的基本操作,可以帮助考生进一步巩固和加深对数组的认识。

问题背景

本次期末考试中,考生需要完成一道关于数组的编程题。该题目旨在考察考生对C语言数组的掌握程度,以及对基本控制流程的了解。题目的难度适中,涉及到数组的基本操作,可以帮助考生进一步巩固和加深对数组的认识。

题目要求

考生需要编写一个程序,实现以下要求:

  1. 输入一个整数N,表示数组的大小
  2. 输入N个整数,存入一个一维数组中
  3. 输出数组中的最大值和最小值
  4. 将数组中的奇数和偶数分别存入两个不同的一维数组中,并输出这两个数组

完成以上要求之后,程序应该终止运行。

解题思路

题目要求对输入的整数数组进行最大值、最小值的查找,以及对奇数、偶数的拆分,需要考生用到循环语句、条件语句、基本运算符等语法。下面介绍具体实现步骤:

1. 输入

首先需要读取一个整数N,表示数组的大小。可以使用scanf函数实现,如下:

int n; 
scanf("%d", &n);

然后需要读取N个整数,构成一个一维数组。这里我们可以定义一个大小为N的数组arr,循环读取N个整数:

int arr[n];
for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
}
2. 数组操作

数组的操作包括最大值、最小值的查找,以及奇数、偶数的拆分。定义变量max和min分别存储最大值、最小值,初始值可以设为数组的第一个元素。然后使用for循环遍历数组,逐个比较元素大小,更新max和min的值。

int max = arr[0], min = arr[0];
for (int i = 0; i < n; i++) {
    if (arr[i] > max) {
        max = arr[i];
    }
    if (arr[i] < min) {
        min = arr[i];
    }
}

我们还需要定义两个数组odd和even,分别存储奇数和偶数。定义变量odd_cnt和even_cnt分别表示奇数和偶数个数,初始值为0。使用for循环遍历数组,逐个判断元素奇偶性,将奇数存入odd数组,偶数存入even数组。

int odd[n], even[n], odd_cnt = 0, even_cnt = 0;
for (int i = 0; i < n; i++) {
    if (arr[i] % 2 == 0) {
        even[even_cnt++] = arr[i];
    } else {
        odd[odd_cnt++] = arr[i];
    }
}
3. 输出

最后需要输出最大值、最小值以及奇偶数组。可以使用printf函数实现:

printf("Max: %d\n", max);
printf("Min: %d\n", min);

printf("Odd number: ");
for (int i = 0; i < odd_cnt; i++) {
    printf("%d ", odd[i]);
}
printf("\n");

printf("Even number: ");
for (int i = 0; i < even_cnt; i++) {
    printf("%d ", even[i]);
}
printf("\n");

数组输出需要使用循环遍历,将每个元素逐个输出即可。