好吃的蚂蚱


私信TA

用户名:1047998203

访问量:4991

签 名:

等  级
排  名 9555
经  验 1148
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 吉珠
专  业

  自我简介:

 

0.0分

57 人评分

  评论区

点个大大赞
2023-01-17 13:59:01
为什么用vector复制输入的值结果是错的,
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int  main()
{
    int  n;
    int sum = 0;
    cin >> n;
    int a[105]={0};
    /*int min[105]={0};*/
    vector<int>min(n + 5);
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        min[i] = a[i];
    }
    sort(min.begin(), min.end());
   /* sort(min, min + n + 1);*/
    for (int i = 1; i < n ; i++) {
        int iter;
        for (iter = 1; iter <= n; iter++) {
            if (a[iter] == min[i])
                break;
        }
        int pre = iter - 1, next = iter + 1;
2022-02-15 18:23:41
说说我的想法:  其实根据那个例子可以看到,4个数字分别是2,3,5,10,最大就是10*2*3+10*3*5+10*5*10
规律就是想要得到最大能量,就要每次都有最大的数参与相乘,每次逐步消去剩下的数中最小的
所以我想到的就是用冒泡先把数据从小到大排序一遍,依次放在一个数组num[]里面,这样数的大小就都排号好了,然后取出数组的最后一个也就是最大的一个数10乘数组num[0]也就是2再乘num[1]也就是3,就是数组里的元素看作是i,也就是每次都是乘num[i]乘num[i+1],
代码如下,运行结果正确,但提交答案上去,说我答案错误
#include<iostream>
using namespace std;
int main()
{
	int i,N,E=0,num[N],temp;

	cin>>N; 
	for(i=0;i<N;i++){
		cin>>num[i];
	}
	for(i=0;i<N-1;i++){
		for(int j=0;j<N-i-1;j++)
		{
			if(num[j]>num[j+1])
			{
				temp=num[j];
				num[j]=num[j+1];
				num[j+1]=temp;
				
			}
		}
	}
		
for(i=0;i<N-1;i++)
{
	E=E+num[N-1]*num[i]*n
2021-03-06 21:14:11
这答案直接错了吧
2020-11-25 10:45:03
好像不对吧@-@
2020-11-15 21:28:21
为什么输入4
2 5 3 10出来不是710呢
2020-09-26 19:13:37
详细
2020-09-26 10:14:01
楼主,你数组排序,for循环少写了个括号吧
2020-06-21 21:24:48