| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1260 人关注过本帖
标题:怎么取消重复显示的标题
只看楼主 加入收藏
qq336
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-10-17
收藏
得分:0 
回复 10楼 apull
start = a;
    if (a > b) {      //交换a,b,                                                            
        a = b;         //start=a;  前面已经赋值,这里忽略
        b = start;
    }
这里如果输入的a > b, if语句运行之后感觉应该只是a和b调换了,start没有换啊,还是大的那个值




[此贴子已经被作者于2021-10-18 15:37编辑过]

2021-10-18 15:10
qq336
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-10-17
收藏
得分:0 
回复 10楼 apull
start = a;
    if (a > b) //交换a,b,
    {
        //start=a;  前面已经赋值,这里忽略
        a = b;
        b = start;
    }
这个调换是有问题的,如果输入的a>b,这个只是把a和b调换了,start还是大的那个值。
输入的是3和1,出来的值是却是3。
在这个代码下面再对start重新赋值就没这个问题了
    start = a;
    if (a > b) //交换a,b,
    {
        //start=a;  前面已经赋值,这里忽略
        a = b;
        b = start;
    }
    start = a;

你看看我分析的对不对?

[此贴子已经被作者于2021-10-18 15:34编辑过]

2021-10-18 15:32
qq336
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-10-17
收藏
得分:0 
回复 10楼 apull
下面是我用另一种方法实现的,请帮看看,这2种(和你的那种)思路那种运行效率更高,内存占用更低,哪种更好(我是新手,不懂)
#include<stdio.h>
#include<stdlib.h>
//求任意两个整数之间所有整数之和(输入的2个整数不能相等)
int leijia(int start, int end) {                               //累加器,输入start不能比end大
    int sum = 0;
    while (start <= end) {
        sum = sum + start;
        start++;
    }
    return sum;
}
int dayin(int k, int l) {
    printf("请输入第一个整数:"); scanf_s("%d", &k);
    printf("请输入第二个整数:"); scanf_s("%d", &l);
    if (k == l) {
        printf("错误:两数相等,请重新输入!\n");
        dayin(k, l);
    }
    else {
        if (k < l) {                                                                     
            printf("大于等于%d小于等于%d的所有整数的和是%d。\n", k, l, leijia(k, l));         //小数在前
        }
        else {
            printf("大于等于%d小于等于%d的所有整数的和是%d。\n", l, k, leijia(l, k));         //小数在前
        }
    }
    return 0;
}
int main(int k, int l) {
    printf("求任意两个整数之间所有整数和(输入的2个整数不能相等):\n");
    printf("请输入两个整数。\n");
    dayin(k, l);
    system("pause");
    return 0;
}

[此贴子已经被作者于2021-10-18 15:53编辑过]

2021-10-18 15:50
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:0 
不建议用
if (k == l) {
        printf("错误:两数相等,请重新输入!\n");
        dayin(k, l);
    }
这种方式,这成了递归,递归的开销不小的。
2021-10-18 20:55
qq336
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-10-17
收藏
得分:0 
回复 14楼 apull
就刚学递归,谢谢提醒,尽量不用
2021-10-18 21:17
快速回复:怎么取消重复显示的标题
数据加载中...
 
   



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

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