开发者社区> 问答> 正文

关于linux c的数组问题

#include
int main()
{
int fun(int m);
int p;
scanf("%d",&p);
printf("m is %d",p);
fun(p);
}
int fun(int m)
{
int n=0,k;
int a[n];
printf("m is %d:",m);
for(k=1;k<=m;k++)
{
if(k%7==0||k%11==0)
{
n++;
a[n-1]=k;
printf("a[%d]=%d\n",(n-1),k);
    }

}
printf("the n is :%d",n);

    以上是我的测试代码,例如输入50,则输出1-50之间能被7或11整除的数,期待输出的结果为
    7,11,14,21,22,28,33,35,42,44,49

可是我的代码输出结果如下:

./avgs 
50
m is 50
a[0]=7
a[1]=11
a[2]=14
a[3]=21
a[4]=22
a[5]=28
a[6]=33
a[7]=35
the n is :8

只输出到35就结束了 而且总的数组长度为8
想请教下出错的原因,还望不吝赐教~~
多谢多谢~

展开
收起
杨冬芳 2016-07-14 14:27:38 1733 0
1 条回答
写回答
取消 提交回答
  • IT从业
    #include
    
    void fun(int m)
    {
    int k , n = 0;
    int a[100];
    printf("m is %d:",m);
    for(k=1;k<=m;k++)
    {
    if(k%7==0||k%11==0)
    {
    n++;
    a[n-1]=k;
    printf("a[%d]=%d\n",(n-1),k);
    
        }
    }
    }
    int main()
    {
    int p;
    scanf("%d",&p);
    printf("m is %d",p);
    fun(p);
    return 0;
    }
    
    2019-07-17 19:56:15
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载