C++ 帮助我向绘制图案的函数添加参数
请帮我回答这个问题,带参数的void函数。我不太明白 我想写一个程序,这样用户就可以输入构成模式的两个字符 我需要定义两个(字符)变量,分别是(star)和(next),语句必须包含三个参数——一个是模式的(int) 和两个字符,用于字符显示模式 我必须将函数(drawpattern)更改为具有三个值参数 一个(int)参数表示图案的大小,两个(字符)表示将用于显示图案的字符 输入(4)表示大小,输入(Y)表示用于开始图案的字符,输入(+)表示第二个和每个备用组 这就是我到目前为止所做的,如果可以的话,我现在不这么做:C++ 帮助我向绘制图案的函数添加参数,c++,C++,请帮我回答这个问题,带参数的void函数。我不太明白 我想写一个程序,这样用户就可以输入构成模式的两个字符 我需要定义两个(字符)变量,分别是(star)和(next),语句必须包含三个参数——一个是模式的(int) 和两个字符,用于字符显示模式 我必须将函数(drawpattern)更改为具有三个值参数 一个(int)参数表示图案的大小,两个(字符)表示将用于显示图案的字符 输入(4)表示大小,输入(Y)表示用于开始图案的字符,输入(+)表示第二个和每个备用组 这就是我到目前为止所做的,如果可
#include <iostream>
using namespace std;
void drawPattern(int size, char start, char next)
{
for (int i = 0; i <= size; i++)
for (int j = 0; j <= size; j++)
{
if ((i / size) % 3 == 0)
if ((j / size3) % 3 == 0)
cout << '4';
else
cout << 'Y';
else
if ((j / size) % 3 == 0)
cout << '+';
else
cout << '4';
}
}
int main ()
{
int size;
char start, next;
cout << "Please enter number ( 4 ) for the size of the pattern : ";
cin >> size;
cout << " Now enter leter ( Y ) to start the pattern: ";
cin >> start;
cout << "Lastly enter the ( + ) for the other pattern: ";
cin >> size;
cout << " This is the output pattern: " << endl;
drawPattern(size, start, next);
return 0;
}
#包括
使用名称空间std;
void drawPattern(int size、char start、char next)
{
对于(int i=0;i看起来您在drawPattern函数中硬编码您的输出,而忽略了用户的实际输入。我认为您可能应该用传递给函数的相应参数替换“Y”和“+”,因为我很确定教授不会对硬编码的值感到高兴。在第11行,您必须e一个打字错误。它说size3
,应该说size
你也犯了一个合乎逻辑的错误
此代码
if ((i / size) % 3 == 0)
在概念上是错误的。至少现在编写代码时是这样。通常您会这样编写:
if (i % 3 == 0)
此if语句每三行为真。%
(模)计算整数(整数)除法的剩余部分firstnumber/secondnumber
。如果您有一个从0到10的i
序列,这就是i%3
输出的内容
i: 0 1 2 3 4 5 6 7 8 9 10
i%3: 0 1 2 0 1 2 0 1 2 0 1
如您所见,当i可被3整除时,i%3==0
为true
你的代码做了一些不同的事情。比如说size
=10。然后你计算(整数)除法i/size
。最后你计算(i/size)%3
。但是i
总是小于size
,除了在循环的最后一个回合。让我们再看看这些值:
i: 0 1 2 3 4 5 6 7 8 9 10
size: 10 10 10 10 10 10 10 10 10 10 10
i/size: 0 0 0 0 0 0 0 0 0 0 1
由于i/size
的值仅更改一次,因此计算(i/size)%3
没有任何意义。我在代码周围添加了一个代码块,但现在您需要修复缩进。没有人可以读取它。为什么您要将大小
读取两次?我们需要修复格式已经够糟糕的了,但如果您再次破坏它,情况会更糟。我建议:1)修正问题的标题,用一个简洁而有意义的句子来说明你有什么问题。2)修正你的程序的缩进。缩进让我眼睛流血。我拒绝看这样一个令人憎恶的东西。3)试着把描述你问题的文字墙打破成明白易懂的句子。我知道这对非本地人来说并不容易(我也是非本地人),但是把它分成更小的句子可能对你来说也更容易。不清楚你在问什么。代码是否产生了不正确的结果,你不知道为什么,或者它产生了正确的结果,但你不了解它是如何工作的?当程序编译时看到这一点很痛苦,但我不知道是否键入了c正如上面问题中所说的,正确的代码我不确定你是否完全理解这个问题。它要求你输入一个数字X(不管这个数字是什么),你有两个字符(第一个和第二个)。看起来他们想让你写一个程序,以第一个字符开始,在第一个字符和第二个字符之间交替,直到你做了X次…因此,如果你输入8、X和F,它看起来像“XF”。这有意义吗?如果有意义,请单击向上按钮投票支持这个答案。你可能不应该这样做接受这个答案,因为我还没有完全解决你的问题。