题目
本题是中国海洋大学编程题20题题库的第6题。
题目:
6.请编写函数 int fun(int *a,int n),功能:把形参a所指数组中的偶数按原顺序依次存放到a[0,1,2,3…]中,,把奇数从数组中删除,并返回偶数的个数。
例:输入1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
输出 2 4 6 8 10 12 14
n=7
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692
一、解题思路
思路:
1,遍历数组每个元素
2,如果当前数不是偶数的话,
3,将当前数删除=后面的数覆盖过来
4,数组总数量-1
5,最终留下来的数也就是偶数的个数
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
#define N 15
int fun(int* a, int n)
{
for (int i = 0; i<n; i++)//遍历数组每个元素
if (*(a + i) % 2 != 0)//如果当前数不是偶数的话
{
for (int j = i; j < n - 1; j++)
*(a + j) = *(a + j + 1);//将当前数删除=后面的数覆盖过来
n--;//数组总数量-1
}
return n;//最终留下来的数也就是偶数的个数
}
void main()
{
int a[N];
for (int i = 0; i < N; i++)
scanf("%d", &a[i]);//输入
int n = fun(a, N);
for (int i = 0; i < n; i++)
printf("%d ", a[i]);//输出
printf("\n%d", n);
}
三、执行结果
输入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
输出:
2 4 6 8 10 12 14
7