0

この質問に少し問題があります。「ビルドは成功しました」(xCodeで作業しています)が表示され続けますが、印刷出力がありません。

ここに質問があります:

「プログラムとvoid関数を記述します。void関数は値渡しパラメーターとして2つのintを取ります。これらの2つのintは、内の位置の範囲の開始と終了(開始は終了よりも小さいことが保証されます)を提供します。アルファベットシーケンス(Aはゼロ、Bは1など)次に、関数は開始大文字を出力し、その後、昇順のFORループ内のすべての大文字を出力する必要があります。putchar()またはprintfを使用できます。例:ユーザーの場合「CJ」と入力すると、関数に渡されるintは2と9になり、出力は「CDEFGHIJ」になります。

そして、これが私のコードです:

#include <stdio.h>

void writeLetters (int begin, int end);

int main() {

    char beginChar, endChar;
    int beginInt, endInt;

    scanf("%c%c", beginChar, endChar);

    beginInt = beginChar*1;
    endInt = endChar*1;

    writeLetters(beginInt, endInt);

    return 0;
}

void writeLetters (int begin, int end) {

    int i;
    char beginChar = begin*'A', endChar = end*'A';

    for (i=begin; i<=end; i++) {

        printf("%c", beginChar);
        beginChar += 'A';
    }
}

ありがとう!

4

2 に答える 2

0
scanf("%d%d", &beginInt, &endInt);    
....

void writeLetters (int begin, int end)
{
   int i;

   for (i=begin; i <= end; i++)
   {
       printf("%c", (char)('A' + i));
   }
}
于 2013-03-25T21:09:06.513 に答える
0

あなたには多くの問題があります。すでに指摘されているものもあれば、指摘されていないものもあります。ループを通過するたびwriteLettersに増分する関数を見てください。beginChar'A'

これを試して:

void writeLetters (int begin, int end) 
{
    while(begin <= end)
    {
        printf("%c", 'A' + begin);
        begin++;
    }
}

int main() 
{
    char beginChar, endChar;

    scanf("%c%c", &beginChar, &endChar);

    /* live dangerously - don't error check scanf and don't
     * sanitize the input. In real life, you should always
     * practice safe hex.
     */
    writeLetters(beginChar - 'A', endChar - 'A');

    return 0;
}
于 2013-03-25T21:23:06.613 に答える