2017-02-28 92 views
-4

所以我有這個「程序」在python3中增加3個字符串,但中間部分x次。但我決定選擇C作爲我的關於Python 3 做一些簡單的東西后的第一語言現在,這是它的外觀在Python:在C程序中打開一個簡單的python「程序」!

def printWord(begin, mid, end, r): 
    print(begin, end="") 
    for i in range(r+1): 
     print(mid, end="") 
    print(end) 
begin = input("Enter your beginning.\t") 
mid =input("Enter your middle.\t") 
end = input("Enter your ending.\t") 
r = int(input("How many times?\t")) 

printWord(begin, mid, end, r) 

所以此工程和每一件事情就是爽!

現在C:

#include <stdio.h> 
#include <stdlib.h> 

int makeWord(char begin[], char mid[], char end[], int r) 
{ 
    int i; 
    printf("%s", begin); 
    for(i=0;i<=r;i++){ 
     printf("%s", mid); 
    } 
    printf("%s", end); 
    return 0; 
} 

int main() 
{ 
    int r; 
    char begin[3], mid[2], end[3]; 
    printf("Enter the beginning!\t"); 
    scanf("%s", begin); 
    printf("Enter the middle!\t"); 
    scanf("%s", mid); 
    printf("Enter the ending!\t"); 
    scanf("%s", end); 
    printf("How many times?\t"); 
    scanf("%d", r); 

    makeWord(begin, mid, end, r); 

    return 0; 
} 

但是這一次停止

現在我的問題爲什麼? 感謝您的回答

+1

'scanf(「%d」,&r);' –

+2

Lol,python-hammered:d –

+1

注意'begin'和'end'只能容納2個字符加上null結束符,'mid'只能容納1個字符。因爲你不能控制用戶輸入多少字符,所以這個應用程序很容易發生緩衝區溢出和崩潰。 – Havenard

回答

1

您錯了使用scanf。當你傳遞變量本身時,需要指針作爲目標變量 - 在線查看文檔。

這會導致您的所有變量未初始化幷包含垃圾值 - 因此使用它們是因爲未定義的行爲