使用函数打印星号

Using function to print asteriks

本文关键字:打印 函数      更新时间:2023-10-16
#include <iostream>
using namespace std;
int asteriks (int sides,int row=1,int col=1)
{
    for(row;row<=sides;row++)
    {
        for(col;col<=sides;col++)
            cout<<"*";
        cout<<endl;
    }
    return asteriks;
}
int main()
{
    int side;
    cout<<"Enter a number to print out square asteriks. Ex: If a number is 5, it will  print 5x5 total of 25 asteriks in square. :"<<endl;
    cin>>side;
    cout<<asteriks(side);
    // ...

这是我在C++课上必须做的作业之一。我在"return asteriks"中得到一个错误,它说返回值类型与函数类型不匹配。

该程序的目标是通过用户使用功能输入一面(例如5,它将打印5x5(来打印方形星号。

让我们检查您的代码:

cout<<asteriks(side); // this implies that asteriks function is returning a value
int asteriks (int sides,int row=1,int col=1) // this implies this function return an integer
return asteriks; // this implies that asteriks is the integer you return from the function, but asteriks is not a variable

因此,您必须将函数类型更改为String,并返回一个String istead以在函数内执行cout,或者您希望asteriks函数的类型为void,不返回,并像这样调用它:asteriks(side);

删除

return asteriks;

将函数返回值更改为void并更改

void asteriks (int sides,int row=1,int col=1)

并更改

cout<<asteriks(side);

对于

asteriks(side);

你正在调用一个函数来打印正方形,返回一些东西是没有意义的。

代码的问题是,您试图返回asteriks,而asteriks不是"整数类型"。

你可以用一种更短的方式来完成,比如:

#include <iostream>
#include <string>
using namespace std;
int main() {
    int asterisks;
    cout<<"Enter a number to print out square asteriks. Ex: If a number is 5, it will  print 5x5 total of 25 asteriks in square. :"<<endl;
    cin >> asterisks;
    for(int i = 0; i < asterisks; i++) cout << string(asterisks, '*') << endl;
    return 0;
}