gpt4 book ai didi

c++ - 如何在cpp的main()中调用此函数

转载 作者:行者123 更新时间:2023-12-01 14:40:13 25 4
gpt4 key购买 nike

我试图在main()函数中使用以下remove()函数。请让我知道当前代码有什么问题。

void remove(float a[], int& n, int i);
int main() {
float a[]={56.8, 14.2, 0.2, 22.3, 3.3, 54.02, 543.33, 456,333, 1.1};
int size, del;
size =sizeof(a)/sizeof(a[0]);
cout<<"Enter the element to be deleted!";
cin >>del;
cout << "Removed= "<< remove(a, size, del) << "\n";
}

void remove(float a[], int& n, int i){
for (int j=i+1; j<n; j++)
a[j-1] = a[j];
--n;
}

最佳答案

所以你的问题是

a) let me know what is wrong with my code





b) isn't there another way to do the same without altering the function code



到一个)
  • 我最近了解到,如果可能的话,不要使用命名空间,这是因为由于经常发生的变量命名而导致可避免的错误的可能性很高,因此建议使用std::而不是 using namespace std;
  • sizeof()可能在内部使用double而不是float,因此它在起作用时警告我:implicit conversion loses floating-point precision: 'double' to 'float'
  • 一个for-坡度超过一条线的斜率应该写在方括号中,否则我的警告是:这个“for”子句不起作用... [-Wmisleading-indentation]
    20 |为(int j = i + 1; j
  • 如果您使用std::cin,则应始终检查输入是否错误,例如就像我对input()函数所做的一样。
  • 因为int main(){return 0;}是一个函数,并且“int”表示返回值,所以始终使用“return 0”关闭该函数以向操作系统发出停止信号。
  • 在行的开头而不是在各行之间声明变量,使代码更具可读性
  • 同样,如果您得到了正确的答案,也请不要忘记检查问题是否已解决,以避免它出现在stackoverflow.com的“未解决”部分;)

  • 到b)

    是的,除了使用{}外,它是这样的括号:
    #include <iostream> //std, std::cin
    #include <limits> //std::numeric_limits<std::streamsize>::max()

    int input(int size); //int signals return
    void remove(double a[], int& n, int i); //void signals no return

    int main() {

    int size, del;
    double rem;

    double a[]={56.8, 14.2, 0.2, 22.3, 3.3, 54.02, 543.33, 456,333, 1.1};
    size =sizeof(a)/sizeof(a[0]);

    std::cout<<"Which element do you want to remove: ";
    del = input(size); //check the input

    rem = a[del]; //filling rem to print out the value to be removed to not change the function like you asked for
    std::cout << "Removed= " << rem << std::endl;
    remove(a, size, del);

    return 0;
    }

    void remove(double a[], int& n, int i)
    {
    for (int j=i+1; j<n; j++)
    {
    a[j-1] = a[j];
    --n;
    }
    }

    int input(int size)
    {
    int input;

    while (!(std::cin >> input) || input < 0 || input >= size) {
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cout << "invalid input ignored; try again and enter a valid move between -1 and " << size << "\n";
    }

    return input;
    }

    我的意图是让包括我在内的每个人都从看似简单的问题中学习。我希望我达到了我的目标:)

    关于c++ - 如何在cpp的main()中调用此函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59228146/

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