| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:新手请教大家一个简单的题目
只看楼主 加入收藏
xixiqiqi
Rank: 2
等 级:论坛游民
帖 子:22
专家分:71
注 册:2013-10-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
新手请教大家一个简单的题目
题目要求是:将100到200的素数输出。
我是这样写的:
程序代码:
#include <stdio.h>
int main()
{
    int a[50]={0};
    int n=0;
    int w;
    for(int i=100;i<=200;i++)
    {
        w=1;
        for(int a=2;a<i/2&&w==1;a++)
        {
            if(0==a%2)
            {
                w=0;
            }
        }
        if(1==w)
        {
            a[n]=i;  // 这里到底有什么错
            n++;
        }
    }
    printf("100到200之间有%d个素数,它们分别是\n",n);
    for(n=0;n<50;n++)
    {
        if(0!=a[n])
        {
            printf("%d ",a[n]);
        }
    }
    return 0;
}


vc6的错误信息为:
error C2109: subscript requires array or pointer type
error C2106: '=' : left operand must be l-value

小弟糊涂请大家指点一下。
2013-10-10 01:47
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
for(int a=2;a<i/2&&w==1;a++)
a是数组,至少要a[i]吧,或者你用一个指针指向a,然后移动指针

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-10-10 07:03
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:6 
程序代码:
#include<stdio.h>

int main(void)
    {
    int n, i, j;

    printf("100-200之间的素数有:\n");
   
    for(n = 101; n < 200; n += 2)
        {
        for(i = 2; i * i < n; i++)
           
            if(n % i == 0) break;
           
            if(i * i > n)
                {
                if(j++ % 5 == 0)
                printf("\n");
                printf("%d\t", n);
                }
        }
    printf("\n");

    return 0;
    } 
2013-10-10 07:24
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:2 
局部变量和全局变量的关系。

♂ 死后定当长眠,生前何须久睡。♀
2013-10-10 07:38
在这里爬起
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:113
注 册:2013-8-9
收藏
得分:4 
程序代码:
#include <stdio.h>
int main()
{
    int w;
    printf("100到200之间有%d个素数,它们分别是:\n");
    for(int i=100;i<=200;i++)
    {
        w=1;
        for(int a=2;a<i/2&&w==1;a++)
        {
            if(0==i%a)
                w=0;
        }
        if(1==w)
        {
         printf("%d \n",i);
        }
    }
    return 0;
}

这个也可以实现
2013-10-10 10:42
在这里爬起
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:113
注 册:2013-8-9
收藏
得分:0 
回复 4楼 303770957
版主,我不太明白。能否详谈
2013-10-10 10:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:6 
回复 6楼 在这里爬起
变量名字重复了,都是a,一个是数组,一个是循环变量

总有那身价贱的人给作业贴回复完整的代码
2013-10-10 10:46
xixiqiqi
Rank: 2
等 级:论坛游民
帖 子:22
专家分:71
注 册:2013-10-10
收藏
得分:0 
谢谢大家的回复,谢谢3楼和7楼的前辈还给出了代码,其实昨天让我糊涂的就如同"embed_xuel"说的那样,我连变量和数组同名都没注意到,真是不好意思。" i * i < n"素数中的这个判断条件原来也可以这样写,真是学习了,谢谢各位前辈。
2013-10-10 12:27
快速回复:新手请教大家一个简单的题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047560 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved