| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:为什么会出现这个问题?
只看楼主 加入收藏
aptx48691212
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2012-11-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
为什么会出现这个问题?
为什么inv函数不能被调用?应如何修改?
#include<stdio.h>
#include<math.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int i,count=0;
    int prime(int n);
    int inv(int n);
    for(i=a;i<=b;i++)
        if(prime(i) && inv(i))
        {
            count++;
            printf("%5d",i);
            if(count % 10 == 0)
                printf("\n");
        }
        printf("\n");
}

int prime(int n)
{
        int j,k=int(sqrt(n));
        for(j=2;j<=k;j++)
            if(n % j==0) break;
            if(j>k) return 1;
            else return 0;
}
int inv(int n)
{
        int m,c=0,j,k=int(sqrt(n));
        m=n;
        while(m)
        {
            c=c*10+m%10;
            m=m/10;
        }
        for(j=2;j<=k;j++)
            if(n % j==0) break;
            if(j>k) return 1;
            else return 0;
}
搜索更多相关主题的帖子: include count 如何 
2012-11-26 09:05
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:0 
没细看,不过你没写声明,要麽main前边声明,要麽main前边定义
2012-11-26 09:11
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:0 
额,看错了
2012-11-26 09:12
QQ007977
Rank: 2
等 级:论坛游民
帖 子:29
专家分:43
注 册:2012-9-9
收藏
得分:0 
#include<stdio.h>
#include<math.h>
int main()
{
    int a,b;
    int i,count=0;
    int prime(int n);
    int inv(int n);
    scanf("%d %d",&a,&b);
    for(i=a;i<=b;i++)
        if(prime(i) && inv(i))
        {
            count++;
            printf("%5d",i);
            if(count % 10 == 0)
                printf("\n");
        }
        printf("\n");
}

int prime(int n)
{
        int j;
        double k=sqrt(n);
        k=(int)k;
        for(j=2;j<=k;j++)
            if(n % j==0) break;
            if(j>k) return 1;
            else return 0;
}
int inv(int n)
{
        int m,c=0,j;
        double k=sqrt(n);
        k=(int)k;
        m=n;
        while(m)
        {
            c=c*10+m%10;
            m=m/10;
        }
        for(j=2;j<=k;j++)
            if(n % j==0) break;
            if(j>k) return 1;
            else return 0;
}
2012-11-26 09:26
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
先声明 试试
很明显的错误,要么你把子函数定义现在main函数前
要么你先在main前声明,在main下定义子函数
2012-11-26 14:42
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:5 
我大体修改了一下你的代码
运行了一下,貌似问题挺多的
-------
代码给你规范了一下格式你看下
#include<stdio.h>
#include<math.h>


int prime(int n)
{
        int j = 0;
        int  k = 0;
        k = (int)sqrt(n);
        for(j = 2;j <= k;j++){
            if(n % j == 0)
                break;
            if(j > k)
                return 1;
            else
                return 0;
        }
}
int inv(int  n)
{
        int m = 0;
        int c = 0;
        int j = 0;
        int k = 0;
        k = (int)sqrt(n);
        m=n;
        while(m)
        {
            c = c*10+m%10;
            m /= 10;
        }
        for(j = 2;j <= k;j++){
            if(n % j == 0)
                break;
            if(j > k)
                return 1;
            else
                return 0;
        }
}

int main()
{
    int a = 0;
    int b = 0;
    int i = 0;
    int count = 0;
   
    scanf("%d %d",&a,&b);

    for(i = a;i <= b;i++){
        if(prime(i) && inv(i))
        {
            count++;
            printf("%5d",i);
            if(count % 10 == 0)
                printf("\n");
        }
    }
        printf("\n");
        return 0;
}


-------
另外你把你的这个程序的需求发一下
感觉你这代码写的太乱了
2012-11-26 14:58
aptx48691212
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2012-11-21
收藏
得分:0 
回复 6楼 daniel_
大致的意思就是:输入两个数,求在这两个数之间的范围内的素数,并求那个素数的逆序,判断其是否为素数,当两个条件都满足的时候,输出那个数。
prime(n)用于判断一个整数n是否是素数,是则返回1,否则返回0;inv(n)用于对整数n进行逆序,函数返回逆序后的整数。

[ 本帖最后由 aptx48691212 于 2012-11-26 17:04 编辑 ]
2012-11-26 17:00
zyq2099
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-26
收藏
得分:0 
看不懂,还在初学
2012-11-26 17:23
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
收藏
得分:15 
回复 楼主 aptx48691212

给你看了下,大概就是这样子吧(12~20)
图片附件: 游客没有浏览图片的权限,请 登录注册

#include<stdio.h>
#include<math.h>
int prime(int n)
{
        int j;
        double k=sqrt(n);
        k=(int)k;
        for(j=2;j<=k;j++)
            if(n % j==0) break;
            if(j>k) return 1;
            else return 0;
}
int inv(int n)
{
        int m,c=0,j;
        double k=sqrt(n);
        k=(int)k;
        m=n;
        while(m)
        {
            c=c*10+m%10;
            m=m/10;
        }
       j=prime(c);
       return j;
      
}
int main()
{
    int a,b;
    int i,count=0;
    int prime(int n);
    int inv(int n);
    scanf("%d %d",&a,&b);
    for(i=a;i<=b;i++)
        if(prime(i) && inv(i))
        {
            count++;
            printf("%5d",i);
            if(count % 10 == 0)
                printf("\n");
        }
        printf("\n");
}
2012-11-26 17:29
快速回复:为什么会出现这个问题?
数据加载中...
 
   



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

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