C语言的大神帮我看看哪里写错了?

上课按着老师的代码拔的,但是编译老师提示错误,自己怎么也找不出来,求C语言大神帮忙看看,万分感谢!!!代码和图片都给大家。#include<stdio.h>intisPr... 上课按着老师的代码拔的,但是编译老师提示错误,自己怎么也找不出来,求C语言大神帮忙看看,万分感谢!!!代码和图片都给大家。#include <stdio.h>int isPrime(int x, int KnownPrimes[], int numberOfKnownPrimes );int main(void){ const int number=10; int prime [number]={2,}; int count = 1; int i = 3; while ( count< number) { if(isPrime(i,prime,count)) { prime[count++] = 1; } i++; } for(i=0; i<number; i++){ printf("%d",prime[i]); if((i+1)%5)printf("\t"); else printf("\n"); } return 0;}int isPrime(int x,int KnownPrimes[],int numberOfKnownPrimes){ int ret = 1; int i; for(i=0;i<numberOfKnownPrimes;i++){ if(x%KnownPrimes[i] ==0){ ret=0; break; } } return ret;} 展开
 我来答
听不清啊
高粉答主

2021-06-30 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

已经修改完成,运行通过:

#include <stdio.h>

int isPrime(int x, int KnownPrimes[], int numberOfKnownPrimes );

int main(void)

{ const int number=10;

  int prime [number]= {2}; //有修改 

  int count = 1;

  int i = 3;

  while ( count< number)

  { if(isPrime(i,prime,count))

    { prime[count++] = i; //有修改

    }

    i++;

  }

  for(i=0; i<number; i++)

  { printf("%d",prime[i]);

    if((i+1)%5)printf("\t");

    else printf("\n");

  }

  return 0;

}

int isPrime(int x,int KnownPrimes[],int numberOfKnownPrimes)

{ int ret = 1;

  int i;

  for(i=0; i<numberOfKnownPrimes; i++)

  { if(x%KnownPrimes[i] ==0)

    { ret=0;

      break;

    }

  }

  return ret;

}

最大的宝宝
2021-06-30 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:411万
展开全部
1、该代码在vs2019下是正常通过的
2、你所用的编译器已经很清晰地提示了,变长数组不允许初始化。这可能是c99语法规则的限制,你可以把.c文件改成.cpp也许就过了
所以你最好了解一下老师是在什么环境下写代码的,尽可能在初学阶段避免这些麻烦。当然,很多问题知道出在哪了,解决就相对简单了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine1991
科技发烧友

2021-06-30 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

可变长数组,要求编译器支持C99标准

开启编译器的C99支持选项,具体方法自行搜索对应编译器关键字

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式