【运行结果】用随机数填充的数组内的数据,函数ClrMinus统计的负数的数量及函数ClrMinus处理后的数组内的所有非零元素。 #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 10:05:01 浏览: 23
这段给定的程序存在一些错误,需要进行修改才能得到正确的运行结果。下面是修改后的程序:
```c++
#include <stdlib.h>
#include <iostream>
using namespace std;
const int n = 20; // 常量n需要使用const定义,且需要全局定义
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) << endl;
cout << "The Array Removed Negative Number is: " << endl;
for(i = 0; i < n; i++) { // 数组下标应该小于n
if(arr[i] != 0) { // 判断数组元素是否为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;
}
```
修改后的程序可以正确地统计负数的数量,以及处理后的数组内的所有非零元素。