鱼C论坛

 找回密码
 立即注册
查看: 942|回复: 20

[已解决]数组求助

[复制链接]
发表于 2020-5-28 17:17:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
int main()
{  
    const int maxNumber = 25;
    int isPrime[maxNumber];
    int i;
    int x;
    for (i = 0; i < maxNumber; x++) {
        isPrime[i] = 1;
    }
    for (x = 2; x < maxNumber;x++) {
        if (isPrime[x]) {
            for (i = 2; i * x < maxNumber; i++) {
                isPrime[i*x] = 0;
            }
        }
    }
    for (i = 2; i < maxNumber; i++) {
        if (isPrime[i]) {
            printf("%d\t", i);
        }
    }
    printf("\n");
    return 0;
}
编译器是vs,如何让int isPrime[maxNumber];不报错
最佳答案
2020-5-28 23:21:39
const int maxNumber  在C语言中代表一个只读变量,本质上还是一个变量,不是常量

const int maxNumber = 25 只是让maxNumber 这个变量值为25,不能再改变它的值

可以用宏定义  #define maxNumber   25
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 17:23:41 | 显示全部楼层
发报错内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 17:24:35 | 显示全部楼层
#include <stdio.h>
int main()
{  
    const int maxNumber = 25;
    int isPrime[maxNumber+1];
    int i;
    int x;
    for (i = 0; i < maxNumber; x++) {
        isPrime[i] = 1;
    }
    for (x = 2; x < maxNumber;x++) {
        if (isPrime[x]) {
            for (i = 2; i * x < maxNumber; i++) {
                isPrime[i*x] = 0;
            }
        }
    }
    for (i = 2; i < maxNumber; i++) {
        if (isPrime[i]) {
            printf("%d\t", i);
        }
    }
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 17:25:19 | 显示全部楼层
这个不是问题,真正的错误是第8行你把 i++ 写成了 x++。
#include <stdio.h>
int main()
{
    const int maxNumber = 25;
    int isPrime[maxNumber];
    int i;
    int x;
    for (i = 0; i < maxNumber; i++) {
        isPrime[i] = 1;
    }
    for (x = 2; x < maxNumber; x++) {
        if (isPrime[x]) {
            for (i = 2; i * x < maxNumber; i++) {
                isPrime[i * x] = 0;
            }
        }
    }
    for (i = 2; i < maxNumber; i++) {
        if (isPrime[i]) {
            printf("%d\t", i);
        }
    }
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 17:28:40 | 显示全部楼层


表达式必须含有常量
我想让isPrime[maxNumer]这样的效果实现怎么办,vs支持吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 17:31:31 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-28 17:25
这个不是问题,真正的错误是第8行你把 i++ 写成了 x++。

这个打错了,主要不是这个问题,我想解决的是isPrime[maxNumber]这个问题,编译器要求[]中是常量值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 17:38:07 | 显示全部楼层
诡秘之旅 发表于 2020-5-28 17:31
这个打错了,主要不是这个问题,我想解决的是isPrime[maxNumber]这个问题,编译器要求[]中是常量值

这个问题啊,我明白了

先执行这样一段代码
int main(){return 0;}

然后把你的代码复制回去就可以了。

VS 的传统艺能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 17:42:15 | 显示全部楼层
本帖最后由 诡秘之旅 于 2020-5-28 17:43 编辑
永恒的蓝色梦想 发表于 2020-5-28 17:38
这个问题啊,我明白了

先执行这样一段代码


我先执行int main(){return 0;}之后把全部的代码复制完执行还是报错,是不是我操作有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 17:45:26 | 显示全部楼层
诡秘之旅 发表于 2020-5-28 17:42
我先执行int main(){return 0;}之后把全部的代码复制完执行还是报错,是不是我操作有问题


那就截图,发到 https://imgchr.com
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 18:39:02 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-28 17:45
那就截图,发到 https://imgchr.com

审核时间好长,我的三个回复都还没出来,除了这个方法还有其他的方法吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 18:54:52 | 显示全部楼层
诡秘之旅 发表于 2020-5-28 18:39
审核时间好长,我的三个回复都还没出来,除了这个方法还有其他的方法吗

发图片,别发链接……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 19:10:48 | 显示全部楼层
本帖最后由 诡秘之旅 于 2020-5-28 19:12 编辑



                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 19:13:58 | 显示全部楼层


我让你先执行一遍
int main(){return 0;}
不是把他加到程序开头!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 19:19:52 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-28 19:13
我让你先执行一遍 不是把他加到程序开头!

我先运行的int main (){return 0;}去掉再加上代码还是那个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 19:26:46 | 显示全部楼层
诡秘之旅 发表于 2020-5-28 19:19
我先运行的int main (){return 0;}去掉再加上代码还是那个问题

终极绝招:关了编译器重新打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 19:30:11 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-28 19:26
终极绝招:关了编译器重新打开

额,还有没有终极绝招2.0,1.0扛不住 啊
vs2019支持c99吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 19:30:56 | 显示全部楼层
诡秘之旅 发表于 2020-5-28 19:30
额,还有没有终极绝招2.0,1.0扛不住 啊
vs2019支持c99吗

我就用的 VS2019,但我这正常编译执行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 19:33:16 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-28 19:30
我就用的 VS2019,但我这正常编译执行了。

是不是需要一些设置之类的,玄学啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 21:26:22 | 显示全部楼层
诡秘之旅 发表于 2020-5-28 19:33
是不是需要一些设置之类的,玄学啊

不需要,vs 本身就是玄学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 23:21:39 | 显示全部楼层    本楼为最佳答案   
const int maxNumber  在C语言中代表一个只读变量,本质上还是一个变量,不是常量

const int maxNumber = 25 只是让maxNumber 这个变量值为25,不能再改变它的值

可以用宏定义  #define maxNumber   25
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 17:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表