如何生成可以包含大于零的所有自然数的数组?

时间:2019-05-22 09:17:38

标签: c arrays

自然数是一组正整数,范围从1到无穷大(小数部分除外)。自然数是不包括零的整数。零是唯一的整数,不是整数。如果所有元素都是自然数,则数组是特殊的。查找给定的数组是否特殊。

我尝试不使用scanf使用数字,而是按其应有的功能运行。

这是我尝试编写的代码:

#include  <stdio.h>

int main(){
 int N,special[N] ;
  scanf("%d",&N);

for(N;N>0;N++){  
    if(special[N]>0){
        printf("yes/n");
    }else{
        printf("no/n");
    }
}
    return 0;

}

我希望结果是肯定或否定。但是实际输出是什么。我的代码没有输出。

1 个答案:

答案 0 :(得分:3)

注释中指出的代码有几个问题。

您想要实现的一种方法是:

#include  <stdio.h>

int main(){
    int N;

    int ret = scanf("%d",&N);
    if(1 != ret || N < 0)
        return 1;

    int special[N] ;

    for(int i=0;i<N;i++){
        ret = scanf("%d", &special[i]);
        if(1 != ret)
            return 1;
        if(special[i] == 0){ 
            printf("array not special\n");
            return 1;
        }   
    }   

    printf("special array\n");
    return 0;
}