| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 467 人关注过本帖
标题:哪位帮我看看哪里有警告~~呵呵,我才学的哈
只看楼主 加入收藏
yangyi09
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-25
收藏
 问题点数:0 回复次数:2 
哪位帮我看看哪里有警告~~呵呵,我才学的哈
#include<stdio.h>
#include<math.h>
void main()
{
    int m,i,k,h=0,leap=1;
    printf("\n");
    for(m=1;m<=100;m++)
    {k=sqrt(m+1);
    for(i=2;i<=k;i++)
        if(m%i==0)
        {
            leap=0;
            break;
        }
        if(leap)
        {
            printf("%-4d",m);
            h++;
            if(h%10==0)
                printf("\n");
        }
        leap=1;
    }
    printf("\n The total is %d\n",h);
}
搜索更多相关主题的帖子: 警告 才学 
2009-10-25 20:57
apwh7550
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:106
注 册:2009-10-17
收藏
得分:0 
sqrt(),求平方根后返回的应该是double型的值,你声明的k是int型的,所以警告了。
把double型的值赋给int型变量是会丢失数据的。
改为:
double k;
2009-10-25 21:22
kidundead
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-8-21
收藏
得分:0 
程序代码:
#include<stdio.h> 
#include<math.h> 
void main() 
{ 
    int m,i,k,h=0,leap=1; 
    printf("\n"); 
    for(m=1;m<=100;m++) 
    {k=(int)sqrt(m+1);        /*k是int型,sqrt是double型,也可以强制转换sqrt(m+1)为int型,这样就不会出错*/
    for(i=2;i<=k;i++) 
        if(m%i==0) 
        { 
            leap=0; 
            break; 
        } 
        if(leap) 
        { 
            printf("%-4d",m); 
            h++; 
            if(h%10==0) 
                printf("\n"); 
        } 
        leap=1; 
    } 
    printf("\n The total is %d\n",h); 
} 
2009-10-25 21:28
快速回复:哪位帮我看看哪里有警告~~呵呵,我才学的哈
数据加载中...
 
   



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

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