我对这个问题有点麻烦。我一直在“构建成功”(我在xCode中工作),但没有打印输出。
以下是问题:
“编写程序和void函数.void函数将采用两个整数作为值传递参数。这两个整数给出了范围的开始和结束(开始保证小于结束)字母序列中的位置(A为零,B为1等)然后函数必须打印起始大写字母,然后在升序FOR循环中打印每个大写字母。您可以使用put char()或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';
}
}
谢谢!
答案 0 :(得分: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));
}
}
答案 1 :(得分: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;
}