Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 这一排数字中是否有特定的顺序?_C_Loops_Sequence - Fatal编程技术网

C 这一排数字中是否有特定的顺序?

C 这一排数字中是否有特定的顺序?,c,loops,sequence,C,Loops,Sequence,我需要创建一个包含14个元素的列表,每个元素的输入整数必须是1,2,5,10,20,50100,然后反转。写int a=1,b=2,…,是愚蠢的。。。。 那么有没有一种方法可以循环这个过程? 例如,如果我要创建一个For循环,如何在所需的值和“I”之间建立连接?(int x=0;x(其中7是序列的元素数)@500 InternalServerError:Brilliant Vlad! #include <stdio.h> int main(void) { const in

我需要创建一个包含14个元素的列表,每个元素的输入整数必须是1,2,5,10,20,50100,然后反转。写int a=1,b=2,…,是愚蠢的。。。。 那么有没有一种方法可以循环这个过程? 例如,如果我要创建一个For循环,如何在所需的值和“I”之间建立连接?(int x=0;x<14;x++){ int y=1*(x-1)/-1*(x-2)/-2*(x-3)/-3*(x-4)/-4*(x-5)/-5*(x-6)/-6*(x-7)/-7*(x-8)/-8*(x-9)/-9*(x-10*(x-11)/-11*(x-12)/-12*(x-13)/-13 +2*(x-0)/1*(x-2)/-1*(x-3)/-2*(x-4)/-3*(x-5)/-4*(x-6)/-5*(x-7)/-6*(x-8)/-7*(x-9)/-8*(x-10)/-9*(x-11)/-10*(x-12)/-11*(x-13)/-12 +5*(x-0)/2*(x-1)/1*(x-3)/-1*(x-4)/-2*(x-5)/-3*(x-6)/-4*(x-7)/-5*(x-8)/-6*(x-9)/-7*(x-10)/-8*(x-11)/-9*(x-12)/-10*(x-13)/-11 +10*(x-0)/3*(x-1)/2*(x-2)/1*(x-4)/-1*(x-5)/-2*(x-6)/-3*(x-7)/-4*(x-8)/-5*(x-9)/-6*(x-10)/-7*(x-11)/-8*(x-12)/-9*(x-13)/-10 +20*(x-0)/4*(x-1)/3*(x-2)/2*(x-3)/1*(x-5)/-1*(x-6)/-2*(x-7)/-3*(x-8)/-4*(x-9)/-5*(x-10)/-6*(x-11)/-7*(x-12)/-8*(x-13)/-9 +50*(x-0)/5*(x-1)/4*(x-2)/3*(x-3)/2*(x-4)/1*(x-6)/-1*(x-7)/-2*(x-8)/-3*(x-9)/-4*(x-10)/-5*(x-11)/-6*(x-12)/-7*(x-13)/-8 +100*(x-0)/6*(x-1)/5*(x-2)/4*(x-3)/3*(x-4)/2*(x-5)/1*(x-7)/-1*(x-8)/-2*(x-9)/-3*(x-10)/-4*(x-11)/-5*(x-12)/-6*(x-13)/-7 +100*(x-0)/7*(x-1)/6*(x-2)/5*(x-3)/4*(x-4)/3*(x-5)/2*(x-6)/1*(x-8)/-1*(x-9)/-2*(x-10)/-3*(x-11)/-4*(x-12)/-5*(x-13)/-6 +50*(x-0)/8*(x-1)/7*(x-2)/6*(x-3)/5*(x-4)/4*(x-5)/3*(x-6)/2*(x-7)/1*(x-9)/-1*(x-10)/-2*(x-11)/-3*(x-12)/-4*(x-13)/-5 +20*(x-0)/9*(x-1)/8*(x-2)/7*(x-3)/6*(x-4)/5*(x-5)/4*(x-6)/3*(x-7)/2*(x-8)/1*(x-10)/-1*(x-11)/-2*(x-12)/-3*(x-13)/-4 +10*(x-0)/10*(x-1)/9*(x-2)/8*(x-3)/7*(x-4)/6*(x-5)/5*(x-6)/4*(x-7)/3*(x-8)/2*(x-9)/1*(x-11)/-1*(x-12)/-2*(x-13)/-3 +5*(x-0)/11*(x-1)/10*(x-2)/9*(x-3)/8*(x-4)/7*(x-5)/6*(x-6)/5*(x-7)/4*(x-8)/3*(x-9)/2*(x-10)/1*(x-12)/1*(x-13)/2 +2*(x-0)/12*(x-1)/11*(x-2)/10*(x-3)/9*(x-4)/8*(x-5)/7*(x-6)/6*(x-7)/5*(x-8)/4*(x-9)/3*(x-10)/2*(x-11)/1*(x-13)/1 +1*(x-0)/13*(x-1)/12*(x-2)/11*(x-3)/10*(x-4)/9*(x-5)/8*(x-6)/7*(x-7)/6*(x-8)/5*(x-9)/4*(x-10)/3*(x-11)/2*(x-12)/1; } 简短说明:在每一行中,当x是0到13中的一个时,大多数乘法将产生
0
,即不需要除以以更正值的乘法

但是数组查找选项在。。。哦有很多种方式:)


请参见

您可以在循环中使用以下内容

#include <stdio.h>

int main(void) 
{
    const int N = 10;

    int multiplier = 1;
    for ( int i = 0; i < N; i++ )
    {

        int value;

        switch ( i % 3 )
        {
        case 0: 
            value = 1 * multiplier;
            break;

        case 1:
            value = 2 * multiplier;
            break;

        case 2:         
            value = 5 * multiplier;
            break;
        }

        printf ( "%d ", value );

        if ( ( i + 1 ) % 3 == 0 ) multiplier *= 10;
    }

    putchar( '\n' );

    return 0;
}

使用数组
int数组[14]={1,2,5,10,20,50100100,50,20,10,5,2,1}
然后,您可以使用
for
循环访问每个元素。要添加@WeatherVane编写的内容,您可以使查找数组
静态
常量
。如果你真的对空间很吝啬,你甚至可以把它做成一个
char
数组(尽管使用
char
可能会增加代码的大小,而不是使用更窄的类型所节省的大小)。检查一下,如果你能把这个python脚本翻译成C,你就得到了:
print([(n%3)**2+1)*10**int(n/3)对于范围(7)中的n)
-->(其中7是序列的元素数)@500 InternalServerError:Brilliant Vlad!
#include <stdio.h>

int main(void) 
{
    const int N = 10;

    int multiplier = 1;
    for ( int i = 0; i < N; i++ )
    {

        int value;

        switch ( i % 3 )
        {
        case 0: 
            value = 1 * multiplier;
            break;

        case 1:
            value = 2 * multiplier;
            break;

        case 2:         
            value = 5 * multiplier;
            break;
        }

        printf ( "%d ", value );

        if ( ( i + 1 ) % 3 == 0 ) multiplier *= 10;
    }

    putchar( '\n' );

    return 0;
}
1 2 5 10 20 50 100 200 500 1000