| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1350 人关注过本帖
标题:求解,不知名的bug
只看楼主 加入收藏
蒋晓燕
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-11-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
求解,不知名的bug
求各位大神帮忙看看这个代码,前一秒还能正常运行输出结果,后一秒就开始显示错误,连最简单的输入十个数也不可以。不知道是不是因为下载的Microsoft Visual C++ 2010学习版是盗版的?
#include<stdio.h>
void main()
{
    int NUM[10],i,s=0,x,j;
    printf("请输入十个任意整数(数与数之间空格分开):",NUM);
    for(i=1;i<=10;i++)
    {
        scanf("%d",&x);
        for(j=2;j<=x/2;j++)
            if(x%j==0)
            {
            s+=x;break;
            }
    }
    printf("所有非素数之和=%d",s);
}
搜索更多相关主题的帖子: bug 输入 NUM printf for 
2018-11-26 00:11
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:7 
printf("请输入十个任意整数(数与数之间空格分开):",NUM);
你这句是输出!  然后放了个num在结尾。。。   放这个干吗?

scanf("%d",&x);  这句你放在循环体内,循环了10次,每次输入都是给x赋值!

你的num[10]  数组 压根在你的代码里,就没用!

压根没有bug这回事,先检查检查代码吧

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-26 00:38
蒋晓燕
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-11-25
收藏
得分:0 
回复 2楼 Tomorrw_I
但是这些也不行啊,在别的版本上可以运行,在Microsoft Visual C++ 2010学习版上就是不行啊
#include<stdio.h>
#define NUM 10
void main()
{
    int i,j,add=0,a[NUM];
    double k;
    printf("please input %d number:",NUM);
    for(i=0;i<NUM;i++){
        scanf("%d",&a[i]);
    }
   
    for(i=0;i<NUM;i++)
    {
        k = sqrt(a[i]);
        for(j=2;j<=k;j++){
            if(a[i] % j != 0)break;
        }
            if(j < k)
            add = add + a[i];
    }
    printf("非素数和为%d:",add);
}
2018-11-26 08:44
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
回复 3楼 蒋晓燕
运行没有任何提示?
没有2010版本!无法测试

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-26 10:32
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:7 
你的第一个程序在vc2010中可以运行,没问题的,不过程序本身不是很严谨。第二个程序,你用到了sqrt这个函数,但没有包含该函数的头文件,所以编译时通不过的。
还有if(a[i] % j != 0)break;这个语句本身是存在问题的,因为大多数情况下这个条件是都满足的所以第二个程序不能编译,即便你把相关头文件加入,通过编译,结果也是错的。把思路理清。
2018-11-26 10:45
蒋晓燕
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-11-25
收藏
得分:0 
回复 5楼 wlxy_wang
好的,谢谢
2018-11-26 13:00
秋裤
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:40
注 册:2017-6-26
收藏
得分:7 
你是想输入十个数,非素数的加起来是吗?

学无止尽!!!
2018-11-27 19:24
秋裤
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:40
注 册:2017-6-26
收藏
得分:0 
你是想输入十个数,非素数的加起来是吗?

学无止尽!!!
2018-11-27 19:25
秋裤
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:40
注 册:2017-6-26
收藏
得分:0 
#include<stdio.h>
void main()
{
    int NUM[10],i,j,s=0;
    printf("请输入十个任意整数:\n");
    for(i=1;i<=10;i++)
    {
        scanf("%d",&NUM[i]);
        for(j=2;j<=NUM[i]/2;j++)
            if(NUM[i]%j==0)
            {
            s+=NUM[i];
            break;
            }
    }
    printf("所有非素数之和=%d\n",s);
}

学无止尽!!!
2018-11-27 20:12
快速回复:求解,不知名的bug
数据加载中...
 
   



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

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