2.改错题 【程序功能】程序建立一个固定大小数组,通过随机数方式对数组内的元素进行赋值。通过函数ClrMinus对数组内的负数替换为0,对经过函数Clr Minus处理的数组内的非零数据进行输出。 【程序调试要求】在给定的程序中,只允许在原语句上进行修改,不能增加或删除整条语句或修改算法。 【运行结果】用随机数填充的数组内的数据,函数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"<<CIrMinus(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-22 19:02:23 浏览: 58
【修改后的程序】
```
#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)<<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;
}
```
【修改说明】
1. 在调用ClrMinus函数时,将参数arr[n]改为arr,并将n作为第二个参数传入函数;
2. 在第二个for循环中,将if语句判断条件改为arr[i]!=0;
3. 在第二个for循环中,将<=改为<,因为数组下标从0开始,应该循环到n-1。
阅读全文