0

这个问题我有点麻烦。我不断得到“构建成功”(我在 xCode 中工作)但没有打印输出。

这是问题:

“写一个程序和一个void函数。void函数将两个int作为传值参数。这两个int给出了位置范围内的开始和结束(开始保证小于结束)字母序列(A 为 0,B 为 1 等)该函数必须在升序 FOR 循环中打印开始的大写字母和随后的每个大写字母。您可以使用 put char() 或 printf。例如:如果用户类型为“CJ”,传递给函数的整数为 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

你有很多问题;有些已经被指出,有些还没有。看看你的函数,它每次通过循环都会递增writeLettersbeginChar'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 回答
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 回答