2013-03-25 108 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)); 
    } 
} 
相關問題