栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

做PTA中M2021秋C、Java入门练习7-25关于while(1)里写scanf 怎么用return0 替换scanf返回值的思考。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

做PTA中M2021秋C、Java入门练习7-25关于while(1)里写scanf 怎么用return0 替换scanf返回值的思考。

要求如下

本想着按照7-24参考别人的方法,利用 while(1)里写scanf的方式完成,代码如下:

#include

int main(){
    int sum,n,o;
    sum = 0;
    while(1){
    scanf("%d",&n);
    if(n<=0){
        return 0;//改为break则正确
    }else if(n % 2 == 1){
    sum += n;
    }
    }//whlie
    printf(" %d",sum);
}
j结果最后不会输出sum,将return 0换为 break,结果正确。思考return 0是return给谁?while(1)利用的是scanf每次输入默认返回输入值个数,本意是用return 0 代替scanf的返回值,结果好像直接return 0 了main函数,因为跨考基础不是很扎实,过后再仔细查询一下。

7-27  兔子繁殖问题

#include
int main(){
    int t,i = 1,mon = 2,sum = 1,N;
    scanf("%d",&N);
     if(N==1){
         printf("1");
     }else {
         while(sum < N){
             mon++;
             t = i;
             i = sum;
             sum = sum +t;
         }
         printf("%d",mon);
     }
     return 0;
}

重点:兔子的个数变化是斐波那契数列,及f3=f2+f1;本月数量等于前两月兔子数量之和。

仔细看后,发现此公式虽然可以在PTA上满分,但还是不符合题意,输入2/3的话,输出结果为3/4,即最开始仅考虑得分点N=1的情况不充分,因为此处考虑的是兔子总数。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号