老师,关于2-11变成联系的问题
我的代码是哪里出错了呢,为什么不能求出最大值。
#include <iostream>
#include <string>
using namespace std;
int max(int a[], int len)
{
int i, j, s = 0;
for (i = 0; i < len; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (a[i] > a[i+1])
{
s = a[i];
a[i] = a[i+1];
a[i+1] = s;
}
}
}
return s;
}
int main()
{
int a[5] = { 4,5,2,6,9 };
cout << "数组的最大值为" << max(a,5) << endl;
return 0;
}0
收起
正在回答 回答被采纳积分+1
1回答
guly
2018-08-20 17:33:27
你好,您的循环表示的是冒泡排序每次输出相邻两位的最大数,建议参考代码如下:
#include <iostream>
#include <string>
using namespace std;
int max(int a[], int n)
{
int s = a[0];
for(int i=1; i<n; i++)
{
if(a[i] > s)
{
s = a[i];
}
}
return s;
}
int main()
{
int a[5] = { 4,12,2,6,9 };
cout<<"数组的最大值为:"<<max(a, 5)<<endl;
return 0;
}如果解决您的问题请采纳,祝学习愉快!
C++零基础入门 热门编程语言 二级考试必备
- 参与学习 529 人
- 提交作业 110 份
- 解答问题 593 个
无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星