| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:程序运行后出现"遇到问题需要关闭"
只看楼主 加入收藏
不懂C编程
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2009-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:7 
程序运行后出现"遇到问题需要关闭"
#include"stdio.h"
int isp(int m)
{
    int i;
    for(i=2;i<m/2;i++)
    {
        if(m%i==0)
            return 0;
        else
            return 1;
    }
}
void main()
{
    int i,j,cnt=0,b[40];
    for(i=1;i<=90;i++)
    {
        if(isp(i)&&isp(i+4)&&isp(i+10))
            b[cnt++]=i;
    }
    for(j=0;j<cnt;j++)
        printf("%-3d",b[j]);
}
调试时没有任何错误和警告,但运行却弱出一个对话提示"遇到问题需要关闭。",为什么会出现这个问题呢?
帮忙修改下代码,使之能运行出结果。
搜索更多相关主题的帖子: 运行 
2009-10-18 18:45
mfh
Rank: 6Rank: 6
等 级:侠之大者
帖 子:179
专家分:411
注 册:2009-5-31
收藏
得分:0 
#include"stdio.h"
int isp(int m)
{
    int i;
    for(i=2;i<m/2;i++)
    {
        if(m%i==0)
            return 0;
        //else
         //   return 1; //你这里逻辑有问题!
    }
    return 1;
}
void main()
{
    int i,j,cnt=0,b[40];
    for(i=1;i<=90;i++)
    {
        if(isp(i)&&isp(i+4)&&isp(i+10))
            b[cnt++]=i;
    }
    for(j=0;j<cnt;j++)
        printf("%-3d",b[j]);
}
2009-10-18 18:50
lostyue
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-16
收藏
得分:0 
if(isp(i)&&isp(i+4)&&isp(i+10))
            b[cnt++]=i;  <---这里会越界吗?
2009-10-18 20:12
lostyue
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-16
收藏
得分:0 
#include"stdio.h"
int isp(int m)
{
    int i;
    for(i=2;i<m/2;i++)
    {
        return m%i==0;
    }
}
void main()
{
    int i,j,cnt=0,b[40];
    for(i=1;i<=90;i++)
    {
        if(isp(i)&&isp(i+4)&&isp(i+10)&&cnt<40) <--- 搞个小判断你试下,呵呵
            b[cnt++]=i;
    }
    for(j=0;j<cnt;j++)
        printf("%-3d",b[j]);
}
2009-10-18 20:19
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
楼主问题真多·
2009-10-18 20:19
ws6699
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-17
收藏
得分:0 
数组宽度弄大一些就没有问题了,如弄到b[50]
2009-10-18 20:36
不懂C编程
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2009-10-17
收藏
得分:0 
回复 楼主 不懂C编程
二楼说的对,是错误的。修改如下:
#include"stdio.h"
int isp(int m)
{
    int i;
    for(i=2;i<m/2;i++)
    {
        if(m%i==0)
            return 0;
    }
    return 1;
}
void main()
{
    int i,j,cnt=0,b[40];
    for(i=1;i<=90;i++)
    {
        if(isp(i)&&isp(i+4)&&isp(i+10))
            b[cnt++]=i;
    }
    for(j=0;j<cnt;j++)
        printf("%-3d",b[j]);
}
运行结果如下:
1  3  7  13 19 37 43 79 Press any key to continue
2009-10-31 11:47
hnliji1107
Rank: 4
等 级:业余侠客
帖 子:53
专家分:216
注 册:2009-10-23
收藏
得分:0 
#include"stdio.h"
int isp(int m)
{
    int i;
    for(i=2;i<m/2;i++)
    {
        if(m%i==0)
           return 0;
    }
    if(i>=m/2)
        return 1;
}
int main(void)
{
    int i,cnt=0,b[90];
    for(i=3;i<=89;i++)
    {
        if(isp(i)&&isp(i+4)&&isp(i+10))
            b[cnt++]=i;
    }

    for(i=0;i<cnt;i++)
        printf("%-3d",b[i]);
    getch();
    return 0;
}
2009-10-31 16:34
快速回复:程序运行后出现"遇到问题需要关闭"
数据加载中...
 
   



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

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