案例描述:
在一个数组中记录了五只小猪的体重,如:
int arr[5] = {300,350,200,400,250};
找出并打印最重的小猪体重;
第一版错误代码:
#include<iostream>
using namespace std;
int main(){
int arr[max]; //定义最大值
int arr[5] = {300,350,200,400,250};
for(int i = 0;i < 5;i++){
if(arr[i] > arr[i + 1]){
arr[max]; = arr[i];
}else{
arr[max] = arr[i + 1]
}
}//错误原因:从第二次循环开始比较的不再是最大值和新访问的值,仅是相邻的两值的大小
cout<<"最重的体重为:"<<max<<endl;
system("pause");
return 0;
}
修改后的正确代码
#include<iostream>
using namespace std;
int main(){
int max = 0;//认定最大值
int arr[5] = {300,350,200,400,250};
for(int i = 0;i < 5;i++){
if(arr[i] > max){
max = arr[i];
//若新访问的值大于最大值则更新
}//没有else的必要
}
cout<<"最重的体重为:"<<max<<endl;
system("pause");
return 0;
}
运行结果:
最重的体重为:400
请按任意键继续. . .