标题:初学小白问下各位大佬
只看楼主
aatxwd
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-9-29
结帖率:0
已结贴  问题点数:20 回复次数:1 
初学小白问下各位大佬
目前自学中

假设一个整形g(0,10),g为多少则整形sum1-sumg都能+1
比如g=2 则sum1和sum2都+1
g=3 sum1 sum2 sum3都+1
这种有没有简便的编法。
我只想到能用if g==?的方法设置9个if语句,可这太长了,而且时间复杂度高,有没有大佬能简单到位?
求好心大佬顺手拯救。
搜索更多相关主题的帖子: 整形 if 时间 复杂度 好心 
2018-09-29 10:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
我猜你的意图是这样:
有 sum1、sum2、sum3、sum4、sum5、sum6、sum7、sum8、sum9 共9个 int 类型的变量。
给定g,要求 sum1、sum2、sum3、……、sumg 自增1。

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

int main( void )
{
    // 这里是已知
    int sum1=0, sum2=0, sum3=0, sum4=0, sum5=0, sum6=0, sum7=0, sum8=0, sum9=0;
    size_t g = 2;

    // 这里是算法
    int* arr[] = { &sum1,&sum2,&sum3,&sum4,&sum5,&sum6,&sum7,&sum8,&sum9 };
    for( size_t i=0; i!=g; ++i )
        ++*arr[i];
}

顺便问一句,为什么不一开始就将 sum1、sum2、…… 等定义为数组,即 int sum[10] ?
2018-09-29 10:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490074-1-1.html




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

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