生成一个4位数年份的数组,并利用函数判断其中的闰年
1. 数组元素作为函数参数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int is_leap(int); // 判断是否为闰年
int main()
{
int year[N], leap_year[N], i, j = 0; //leap_year中存储闰年
srand(time(NULL)); // 初始化种子
for(i = 0; i < N; i++)
{
year[i] = rand()%9000 + 1000;
if (is_leap(year[i])) // year数组中的元素作为参数,传递给is_leap函数
{
leap_year[j] = year[i];
j++;
}
}
// 输出原始数组元素
printf("原始数组为:");
for(i = 0; i < N; i++)
printf("%d", year[i]);
// 输出闰年数组元素
printf("\n闰年数组为:");
for (i = 0; i < N; i++)
printf("%d", leap_year[i]);
return 0;
}
int is_leap(int y)
{
if (y % 400 == 0 ||
(y % 4 == 0 && y % 100 != 0))
return 1;
else
return 0;
}
2. 整个数组作为函数的参数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int is_leap(int); // 判断是否为闰年
void print_array(int[], int); // 输出一个数组
int main()
{
int year[N], leap_year[N], i, j = 0;
srand(time(NULL)); // 初始化种子
for(i = 0; i < N; i++)
{
year[i] = rand()%9000 + 1000;
if (is_leap(year[i]))
{
leap_year[j] = year[i];
j++;
}
}
// 输出原始数组元素
printf("原始数组为:");
print_array(year, N); //整个数组作为函数参数
// 输出闰年数组元素
printf("\n闰年数组为:");
print_array(leap_year, j); //整个数组作为函数参数
return 0;
}
int is_leap(int y)
{
if (y % 400 == 0 ||
(y % 4 == 0 && y % 100 != 0))
return 1;
else
return 0;
}
void print_array(int a[N], int len)
{
int i;
for (i = 0; i < len; i++)
printf("%6d", a[i]);
printf("\n");
}