给定N个正整数,请统计奇数和偶数各有多少个?

问题遇到的现象和发生背景

给定N个正整数,请统计奇数和偶数各有多少个?

输入格式:
输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:
9
88 74 101 26 15 0 34 22 77
结尾无空行
输出样例:
3 6
结尾无空行

问题相关代码,请勿粘贴截图
#include<stdio.h>
int main()
{
    int n,i,j,k;
    int a[n];
    j=0;
    k=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d ",&a[n]);
    }
    for(i=0;i<n;i++)
    {
        if(a[i]%2==0)
        {
            k++;
        }
        else
        {
            j++;
        }
    }
    printf("%d %d",j,k);
    return 0;
}

运行结果及报错内容

0 9

我的解答思路和尝试过的方法

看到题目就想能不能用数组做,但是出来的结果不对,我去网上找了,没有找到用数组解答的正确代码,想请

```c

```指点一二

我想要达到的结果

scanf("%d ",&a[n]);
改为
scanf("%d",&a[i]);

#include<stdio.h>
int main()
{
    int n,i,j,k;
    int a[1001];
    j=0;
    k=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        if(a[i]%2==0)
        {
            k++;
        }
        else
        {
            j++;
        }
    }
    printf("%d %d",j,k);
    return 0;
}
 

#include <stdio.h>
int main()
{
    int n, i, j, k;
    int a[1000];
    j = 0;
    k = 0;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n; i++)
    {
        if (a[i] % 2 == 0)
        {
            k++;
        }
        else
        {
            j++;
        }
    }
    printf("%d %d", j, k);
    return 0;
}

修改在代码里注释了

img

#include<stdio.h>
int main()
{
    int n,h,j,k;
    j=0;
    k=0;
    scanf("%d",&n);
    int a[1000];//数组定义
    for(h=0;h<n;h++)
    {
        scanf("%d",&a[h]);//不是&a[n] 
    }
    for(h=0;h<n;h++)
    {
        if(a[h]%2==0)
        {
            k++;
        }
        else
        {
            j++;
        }
    }
    printf("%d %d",j,k);
    return 0;
}