改正错误#include <stdlib.h> #include <iostream.h> int n = 20; int ClrMinus(int Arr,int m); int main() { int arr[n]={0},i; for(i=0;i<n;i++) { arr[i]=rand()%100-30; cout<<arr[i]<<'\t'; } cout<<endl; cout<<"Negative Number is"<<ClrMinus(arr[n],n)<<endl; cout<<"The Array Removed Negative Number is:\n"; for(i=0;i<=n;i++) if(arr[i]=0) cout<<arr[i]<<'\t'; cout<<endl; return 0; } int ClrMinus(int Arr[],int m) { int count=0; for(int i=0;i<m;i++) { if(Arr[i]<0) { Arr[i]=0; count++; } } return count; }
时间: 2024-01-21 17:04:54 浏览: 77
修改后的代码如下:
```c++
#include <cstdlib>
#include <iostream>
using namespace std;
const int n = 20;
int ClrMinus(int Arr[], int m);
int main() {
int arr[n] = {0};
int i;
for (i = 0; i < n; i++) {
arr[i] = rand() % 100 - 30;
cout << arr[i] << '\t';
}
cout << endl;
cout << "Negative Number is " << ClrMinus(arr, n) << endl;
cout << "The Array Removed Negative Number is:\n";
for (i = 0; i < n; i++) {
if (arr[i] != 0) {
cout << arr[i] << '\t';
}
}
cout << endl;
return 0;
}
int ClrMinus(int Arr[], int m) {
int count = 0;
for (int i = 0; i < m; i++) {
if (Arr[i] < 0) {
Arr[i] = 0;
count++;
}
}
return count;
}
```
主要的修改如下:
- 修改头文件,将 `stdlib.h` 和 `iostream.h` 改为 `cstdlib` 和 `iostream`。
- 修改函数参数,将 `ClrMinus(int Arr, int m)` 改为 `ClrMinus(int Arr[], int m)`。
- 修改传参方式,将 `ClrMinus(arr[n], n)` 改为 `ClrMinus(arr, n)`。
- 修改输出内容,将 `if (arr[i] = 0)` 改为 `if (arr[i] != 0)`,并在循环外层加上大括号。
- 修改数组访问越界错误,将 `for (i = 0; i <= n; i++)` 改为 `for (i = 0; i < n; i++)`。
阅读全文