编写一个程序,要求用户输入一个正整数N, 程序输出从1到N之间的所有偶数和奇数,并分别计数c语言
时间: 2024-11-05 17:31:49 浏览: 11
自考04747《Java语言程序设计(一)》编程题全集(50题及答案).pdf
在C语言中,可以按照以下步骤编写一个满足需求的程序:
1. **包含头文件**:
首先,我们通常需要包含一些头文件,如`stdio.h`(标准输入输出)用于输入输出,以及`stdlib.h`(数学库)用于处理整数。
```c
#include <stdio.h>
#include <stdlib.h>
```
2. **主函数和用户输入**:
主函数 `main` 中,使用 `scanf` 函数获取用户输入的正整数 `N`,并进行类型检查。
```c
int main() {
int N;
printf("请输入一个正整数N: ");
scanf("%d", &N);
// 检查输入是否有效
if (N <= 0 || N > INT_MAX) {
printf("输入错误! 请确保输入的是一个正整数。\n");
return 1;
}
```
3. **数组存储和遍历**:
创建两个数组分别存储偶数和奇数,然后用循环遍历1到N,根据数字的奇偶性将其添加到对应的数组并计数。
```c
int even_count = 0, odd_count = 0;
int *even_numbers = malloc(sizeof(int) * N); // 分配内存
int *odd_numbers = malloc(sizeof(int) * N);
for (int i = 1; i <= N; i++) {
if (i % 2 == 0) {
even_numbers[even_count] = i;
even_count++;
} else {
odd_numbers[odd_count] = i;
odd_count++;
}
}
```
4. **输出结果**:
遍历完成后,分别输出偶数和奇数,以及它们的数量。
```c
printf("\n从1到%d的所有偶数:\n", N);
for (int i = 0; i < even_count; i++) {
printf("%d\n", even_numbers[i]);
}
printf("\n从1到%d的所有奇数:\n", N);
for (int i = 0; i < odd_count; i++) {
printf("%d\n", odd_numbers[i]);
}
printf("\n偶数总数: %d\n", even_count);
printf("奇数总数: %d\n", odd_count);
free(even_numbers); // 释放内存
free(odd_numbers);
return 0;
}
```
阅读全文