找出我的数组中有多少正数

时间:2017-10-24 16:04:43

标签: c arrays

如何查找我的代码中有多少正数?我收到错误的输出,请详细解释我的错误在哪里。我希望得到所需的确切输出。如果我输入6作为n,那么我将插入六个数字,输出将显示我插入了多少正数。

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main() {
    int n;
    scanf("%d",&n);
    int arr[n];
    int i;
    int p = 0;
    int arr_i;
    for (arr_i = 0; arr_i < n; arr_i++) {
        scanf("%d",&arr[arr_i]);
    }
    for (i = 0; i < n; i++) {
        int arr_index=i;
        if (arr[arr_index] > 0) {
            p++;
        }
        printf("%d",p);
    }

    return 0;
}

2 个答案:

答案 0 :(得分:0)

试试这个: 只需在'1'循环之外打印p

for

答案 1 :(得分:0)

你需要使用malloc分配动态内存 - 希望这有帮助

#include <stdio.h>

#include <stdlib.h>


int main() {
char c;
int n;
scanf("%d", &n);
int * arr;
int i;
int p = 0;
arr = (int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
        if (arr[i] > 0)
        {
            p++;
}
}


printf(" %d", p);

return 0;

}