| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1285 人关注过本帖
标题:请前辈指导
只看楼主 加入收藏
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:3 
请前辈指导
题目:
编写一个函数原型为int f(int n);的函数,对于正整数n计算并返回不超过n的能被3除余2,并且被5除余3,并且被7出余5的最大整数,若不存在则返回0。
应编写相应的主函数调用该函数,在主函数中接受用户输入的正整数n。              
输入描述
一个正整数n。              
输出描述
找到满足条件的整数显示,找不到显示0。              
样例输入
100               
样例输出
68
我写的:(不知道算法哪里错了)
#include<stdio.h>
int main()
   
{
    int f(int n);
    int t;
    int n;
    scanf("%d",&n);
    t=f(n);
    printf("%d\12",t);


}
int f(int n)
{
    int i,j=0;
    for(i=0;i<=n;i++);
    {
        if(i%3==2 && i%5==3 &&i%7==5)
            j=i;   
    }
    return (j);

}
搜索更多相关主题的帖子: 函数 int 正整数 输入 显示 
2018-11-26 11:08
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:5 
你把函数里面那个for循环后的分号去掉就行了
2018-11-26 12:49
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:5 
for(i=0;i<=n;i++);
这一句中,后面的分号构成了一个空语句,也就是说,你的循环体不执行任何东西,后面的比较,以及赋值都不是循环体。
2018-11-26 13:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
x%3=2
x%5=3
x%7=5
解: y = 3*i+2
    y = 3*(5*i+2)+2 = 15*i+8
    y = 15*(7*i+4)+8 = 105*i + 68

故而有代码
程序代码:
#include <stdio.h>

unsigned f( unsigned n )
{
    return n<68 ? 0 : (n-68)/105*105+68;
}

int main( void )
{
    unsigned n;
    scanf( "%u", &n );
    printf( "%u\n", f(n) );
}
2018-11-26 13:31
快速回复:请前辈指导
数据加载中...
 
   



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

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