Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.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_For Loop_Unused Variables - Fatal编程技术网

语句对循环C无效

语句对循环C无效,c,for-loop,unused-variables,C,For Loop,Unused Variables,我得到了这个循环: for(int k=4;k<0;k--){ if(k == 0){ test[k] = 5; break; } else{ test[k] = test[k-1]; } } for(int k=4;k循环将k初始化为正值(k=4),然后在k为负值时循环(k=0?在循环中使用条件k4 false)。 因此,您的条件第一次失败。因此,您的循环尚未执行。因此,请将您的条件语句更改为k>0,而不是

我得到了这个循环:

for(int k=4;k<0;k--){
    if(k == 0){
        test[k] = 5;
        break;
    }
    else{
        test[k] = test[k-1];
    }
}

for(int k=4;k循环将
k
初始化为正值(
k=4
),然后在
k
为负值时循环(
k=0

在循环中使用条件k4 false)。
因此,您的条件第一次失败。因此,您的循环尚未执行。因此,请将您的条件语句更改为k>0,而不是k循环的条件表达式错误

for(int k=4;k<0;k--){
但无论如何,代码看起来都很糟糕。例如,不清楚魔法数字5是什么意思,也不需要使用break stzment

您可以编写一个函数。下面是一个相应程序的示例

#include <stdio.h>

void shift_right( int a[], size_t n )
{
    if ( n > 1 )
    {
        size_t i = n - 1;
        int last = a[i];

        for ( ; i != 0 ; --i ) a[i] = a[i - 1];

        a[i] = last;
    }
}

int main(void) 
{
    int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    const size_t N = sizeof( a ) / sizeof( *a );
    size_t i;

    for ( i = 0; i < N; i++ ) printf( "%d ", a[i] );
    puts( "" );

    shift_right( a, N );

    for ( i = 0; i < N; i++ ) printf( "%d ", a[i] );
    puts( "" );

    return 0;
}

在循环中放入一个print语句。这应该会给你一个线索。条件永远不会满足!4>0!你的
FOR
循环在这种条件下永远不会工作
FOR(int k=4;k
FOR(int k=4;k=0;k--)
。它会在
k==0
时进入循环吗?@Rustam,抱歉这个错误。我已经更改了代码。现在它会在k==0时进入循环。
for(int k = 4; k >= 0; k-- ) {
#include <stdio.h>

void shift_right( int a[], size_t n )
{
    if ( n > 1 )
    {
        size_t i = n - 1;
        int last = a[i];

        for ( ; i != 0 ; --i ) a[i] = a[i - 1];

        a[i] = last;
    }
}

int main(void) 
{
    int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    const size_t N = sizeof( a ) / sizeof( *a );
    size_t i;

    for ( i = 0; i < N; i++ ) printf( "%d ", a[i] );
    puts( "" );

    shift_right( a, N );

    for ( i = 0; i < N; i++ ) printf( "%d ", a[i] );
    puts( "" );

    return 0;
}
0 1 2 3 4 5 6 7 8 9 
9 0 1 2 3 4 5 6 7 8