转动一条简单的python“;计划;在C";节目;!

转动一条简单的python“;计划;在C";节目;!,python,c,python-3.x,Python,C,Python 3.x,我在python3中有一个“程序”,它添加了3个字符串,但中间部分是x次。但在对Python3做了一些简单的工作之后,我决定选择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 beg

我在python3中有一个“程序”,它添加了3个字符串,但中间部分是x次。但在对Python3做了一些简单的工作之后,我决定选择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;
}
#包括
#包括
int makeWord(字符开始[],字符中间[],字符结束[],int r)
{
int i;
printf(“%s”,开始);

对于(i=0;i您误用了
scanf
。当您传递变量本身时,需要指向目标变量的指针,请查看联机文档


这会导致所有变量都未初始化并包含垃圾值-因此使用它们是未定义的行为。

scanf(“%d”,&r)
Lol,python锤击:dNotice
begin
end
只能容纳2个字符加上空终止符,而
mid
只能容纳1个字符。由于您无法控制用户可以输入的字符数,此应用程序很容易出现缓冲区溢出和崩溃。为什么在“程序”周围加上引号?因为它不是你想象中的你知道的程序!!