LiuNengPython 2022-03-11 13:06 采纳率: 100%
浏览 91
已结题

double类型数据无法输出是什么原因(语言-c++)


#include <iostream>
#include <bits/stdc++.h>
using namespace std;

double sordt(double a[],int n)
{
    double temp;
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-1-i;j++)
        {
            if(a[j]>a[j+1])
                {
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
        }
    }
        for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }

}

int sordt(int a[],int n)
{
for (int i = 0; i < n; i++)
    {
        int k= i;
        for (int j = i + 1; j < n; j++)
        {
            if (a[k] > a[j])
            k = j;
        }
        swap(a[i], a[k]);
    }
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
}
int main()
{
    int n;
    double a[n];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    

 sordt( a, n);
    return 0;
}
  • 写回答

3条回答 默认 最新

  • 关注

    两个问题:

    问题一:

    img

    动态数组是C++的新特性,有的编译器不支持,所以,double a[n]这种写法不一定正确,可以用以下两种方式代替:
    第一种方法:

    int n;
    double a[10000]; //这里直接申请一个大数组
    cin >> n; //n表示数组中元素的实际个数
    
    

    第二种方法:

    int n;
    cin >> n; //输入元素的个数
    double* a = new double[n]; //申请n个空间
    

    问题二:
    两个sordt函数都有返回值,第一个函数返回值是double类型,第二个sordt函数返回值是int类型,但是你的函数中都没有return。解决方法有两种:
    一是:在函数的最后都加一句return 0;
    二是:把两个函数的返回值类型都改成void

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 3月11日

悬赏问题

  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: