如何在for循环中将数字增加5

时间:2016-11-08 23:14:13

标签: c for-loop

嗨所以我正在使用C代码并试图创建一个表格,其中数字从1到5的增量为5的倍数增加到...直到用户的输入。到目前为止我得到的是它从1开始然后将数字增加5,例如从1到6增加到11到16 ......直到它到达它不能再增加5的数字为止没有超出用户的输入。有人可以帮助我更好地设置for循环吗?

这是我所谈论的代码片段:

else //run this statement if the user inputs a number greater than 14
    {
        printf("Number   Approximation1         Approximation2\n-----------------------------------------------------\n"); //prints the header for second table

        for ( i = 1; i <= n; i += 5 )
        {
            printf("%d        %e            %e\n", i, stirling1( i ), stirling2( i )); //calls functions to input approximate factorials
        }
    }

所以使用这段代码,如果我输入n为28,我得i从1增加到6到11到16到21到26。

如果我输入n为28,则我希望代码执行的操作是将增量i从1增加到5到10到15到20到25到28之间。

提前致谢!

2 个答案:

答案 0 :(得分:2)

试试这个:

{
    printf("Number   Approximation1         Approximation2\n-----------------------------------------------------\n"); //prints the header for second table

    printf("%d        %e            %e\n", i, stirling1( 1 ), stirling2( 1 ));

    for ( i = 5; i <= n; i += 5 )
    {
        printf("%d        %e            %e\n", i, stirling1( i ), stirling2( i )); //calls functions to input approximate factorials
    }
}

这将打印1,5,10,15,20 ......等等的值

请注意,除了额外的代码行之外,它比添加&#34; if&#34;更快。在循环中。

答案 1 :(得分:0)

我添加了两个if语句,这些语句可以帮助您处理在i = 1和i = n时打印语句的特殊情况,除了每5个语句打印一次。

else //run this statement if the user inputs a number greater than 14
{
    printf("Number   Approximation1         Approximation2\n-----------------------------------------------------\n"); //prints the header for second table

    for ( i = 1; i <= n; i += 5 )
    {
        printf("%d        %e            %e\n", i, stirling1( i ), stirling2( i )); //calls functions to input approximate factorials

        if (i == 1){
            //when it iterates at the end of this loop, i = 5. 
            //In your example, you will get i from 1 to 5 to 10 up to 25 etc.
            i = 0; 
        }

        if ( (i + 5) > n){
            // for the next loop, it will check if i will exceed n on the next increment. 
            // you do not want this to happen without printing for n = i. 
            //In your case if n = 28, then i will be set to 23, which will then increment to 28. 
            i = n - 5; 
        }
    }
}

可能还有其他更优雅的方法来实现这一目标,但这只是您可以尝试的一个简单示例。