gpt4 book ai didi

c - 使用数组打印出一些星号,这取决于用户在 C 中输入的数字

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:01 32 4
gpt4 key购买 nike

所以这个程序应该根据你输入的数字打印出星号的数量,所以如果你输入 5,5 个星号将被打印出来。

我不知道我哪里错了?另外,如果有人可以推荐一本关于 C 的好书,我通读了我的学校教科书和 C 的傻瓜书,我就是不明白。


    void barplot(int num1, char array[]);

int main()
{
int n1;
printf("Enter a number: ");
scanf("%d",&n1);
printf("You have entered: %d\n",n1);

char astrk[n1];
strcpy(astrk, "*");

barplot(n1, astrk);
return(0);

}

void barplot(int num1, char array[])
{
printf("num1=%d\n",num1);
int i=0;


for(i=0; i<num1; i++)
{
printf("%c",array[i]);
}
}

编辑:每个分配都需要一个数组

最佳答案

鉴于您无法使用数组,您可以使用 memset'*' 字符填充 astrk 数组:

char astrk[n1];
memset(astrk, '*', n1);

barplot(n1, astrk);
return 0;

memset 用字符(第二个参数)的副本填充数组(第一个参数),直到第三个参数的长度。请注意,这不会以 null 终止数组,因此您不能直接 printf 它。

如果您确实希望能够printf 它,那么您应该为空终止符分配足够的空间,如下所示:

char astrk[n1+1];
memset(astrk, '*', n1);
astrk[n1] = '\0'

printf("%s", astrk);
return 0;

那么您根本不需要barplot 函数。

关于c - 使用数组打印出一些星号,这取决于用户在 C 中输入的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12880526/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com