2013-03-25 66 views
0

我在这个问题上遇到了一些麻烦。我不断得到“构建成功”(我在xCode中工作),但没有打印输出。打印两个索引之间的所有字母字符

这里是问题:

“写一个程序和一个void函数空隙功能将两个整数如通过按值参数,这两个整数得到的开始和结束时(开始保证。小于尾数)(A是零,B是1等)。然后函数必须打印起始大写字母,然后打印升序FOR循环中的每个大写字母。例如:如果用户键入“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'; 
    } 
} 

谢谢!

+0

会发生什么? – 2013-03-25 21:05:53

+0

如果开始>结束它不会打印任何东西。你给这个程序什么输入? – m0skit0 2013-03-25 21:05:53

+0

我认为你误认为'-'运算符的'*'运算符。 – 2013-03-25 21:06:33

回答

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; 
} 
+0

我明白了,谢谢大家。 – user2044189 2013-03-25 22:10:22

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)); 
    } 
} 
相关问题