gpt4 book ai didi

c - 显示星号与使用函数显示字符

转载 作者:行者123 更新时间:2023-11-30 19:03:57 24 4
gpt4 key购买 nike

我编写了一个函数 (asterisksDisplay),它显示一个由星号组成的实心矩形,其边在整数参数中指定为 rowcolumn ,这是从用户那里获取的。下面的程序完美运行。

#include <stdio.h>

void asterisksDisplay (int row, int column);

int main (void)
{
int a=0;
int b=0;
printf("Please enter sides of your shape: ");
scanf("%d%d", &a, &b);
printf("\nYour shape is: \n");
asterisksDisplay(a, b);
}

void asterisksDisplay (int row, int column)
{
for (int i = 1; i <= row; i++) {
for (int p = 1; p <= column; p++) {
printf("*");
}
printf("\n");
}
}

当我尝试将星号的这个函数修改为用户给定字符显示的函数时,编译器以某种方式跳过显示该字符。

#include <stdio.h>

void asterisksDisplay (int row, int column, char character);
int main (void)
{
int a=0;
int b=0;
char c;
printf("Please enter sides of your shape: ");
scanf("%d%d", &a, &b);
printf("\nplease enter the character to be filled: ");
scanf("%s", &c);
printf("\n");
asterisksDisplay(a, b, c);
}

void asterisksDisplay (int row, int column, char character)
{
for (int i = 1; i <= row; i++) {
for (int p = 1; p <= column; p++) {
printf("%c", character);
}
printf("\n");
}
}

解决这个问题的解决方案是什么?

最佳答案

改变

 scanf("%s", &c);

 scanf(" %c", &c);
^^-----------------------(i)
^^------------------------- (ii)
  • 将转换说明符从 %s 更改为 %c,如 (i):因为 cchar 类型。

  • 我们需要转义之前输入的换行符,即转换说明符之前的额外空格,它匹配并丢弃缓冲区中存在的任何前导空格输入。

关于c - 显示星号与使用函数显示字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53282985/

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