-1

printf()C の前に Objective-C を学び、C に戻った今、ループの内側が機能しない理由がわかりません。誰かが私にアドバイスできますか?

このプログラムは、Skiena と Revilla による著書 "Programming Challenges" の最初の課題です。

#include <stdio.h>
#include <stdbool.h>

static int inputInt;
static int secondInt;
int returnCycleNumber(int givenNumber);

int returnCycleNumber(int givenNumber) {
    bool initial = true;
    int counter = 1;

    do
    {
        if (givenNumber % 2 != 0)
        {
            givenNumber = givenNumber * 3 + 1;
            counter = counter + 1;

            printf("\n%i", givenNumber);
        }
        else
        {
            givenNumber = givenNumber / 2;
            counter = counter + 1;

            printf("\n%i", givenNumber);
        }

        if (givenNumber == 1) {
            initial = false;
        }

    } while (initial == true && givenNumber > 1);

    return counter;
}

int main(int argc, const char * argv[])
{
    scanf("%i %i", &inputInt, &secondInt);
    fflush(stdout);

    int arrayCount[secondInt];

    for (int counter = 0; counter == (secondInt - inputInt); counter++ ) {
        arrayCount[counter] = returnCycleNumber(inputInt + counter);
    }

    printf("\n%i", arrayCount[1]);


    return 0;
}
4

2 に答える 2

3
counter == (secondInt - inputInt)

!= または < が必要です

于 2013-06-27T02:56:46.960 に答える