首页 > 其他分享 >段错误一定是数组越界吗??写题的时候啥都没变,就改了定义结构体数组的位置就报错!!求大佬

段错误一定是数组越界吗??写题的时候啥都没变,就改了定义结构体数组的位置就报错!!求大佬

时间:2024-06-13 23:57:15浏览次数:12  
标签:get int float 写题 num 报错 数组 cake avg

上题是PTA团体程序设计天梯赛--练习题上的一道题,下面是给的用例

我的代码如下

#include <stdio.h>

typedef struct 
{
    float num;
    float price;
    float avg;
}CAKE;
CAKE cake[1010];
int main()
{
    int N,D;
    
    scanf("%d %d",&N,&D);
    
    for(int i=0;i<N;i++)
    {
        scanf("%f",&cake[i].num);
        
    }
    for(int i=0;i<N;i++)
    {
        scanf("%f",&cake[i].price);
        
    }
    for(int i=0;i<N;i++)
    {
        cake[i].avg=cake[i].price/cake[i].num;
        
        
    }
    for(int i=0;i<N-1;i++)//按单价降序排列
    {
        int k=i;
        for(int j=i+1;j<N;j++)
        {
            if(cake[j].avg>cake[k].avg)
            {
                k=j;
            }
        }
        CAKE temp=cake[k];//交换k和i
        cake[k]=cake[i];
        cake[i]=temp;
    }
    int i=0;
    float get=0;
    while(D)
    {
        
        if(D>=cake[i].num)
        {
            D-=cake[i].num;
            get+=cake[i].price;
            i++;
        }
        else
        {
            
            get+=D*cake[i].avg;
            D=0;
        }
    }
    printf("%.2lf",get);
        
    
}

我的思路就是把单价算出来,然后按单价从高到低排列依次分配数量就行

但是问题出在了定义结构体数组上,你看

 

当我把cake数组定义在main函数外面的时候,答案是这样的

等我移到这里时

答案是这样

但当我移到这个位置时,有趣的事情发生了

其他啥都没动,有没有大佬知道指导!!感激涕零!!

标签:get,int,float,写题,num,报错,数组,cake,avg
From: https://blog.csdn.net/Sr6220033/article/details/139666778

相关文章

  • CPU指令集——获取数组的所有奇数位、所有偶数位
    为抽取bayer格式图像的r\g\b做准备#include<iostream>#include<intrin.h>intmain(){uint8_tuint8_array[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//内存顺序012__m128ia=_mm_load_si128((__m128i*)uint8_array);......
  • Linux下编译arm64驱动代码汇编器报错
    简单来说就是错误的汇编Ir约束会导致编译器优化把这个操作数生成非法的汇编指令然后汇编器就会傻眼会报一个非常难懂的错误如下:/tmp/ccxxxxxx.s:Assemblermessages:/tmp/ccxxxxxx.s:xxx:错误:立即数越界atoperand3--'eorw3,w20,4294967295'我通过查看汇编手册发......
  • el-upload拍照上传多个文件报错 ERR_UPLOAD_FILE_CHANGED问题
    最近同事使用el-upload上传图片时出现一个问题,连续拍照多个图片的时候,循环调用接口上传会报错:ERR_UPLOAD_FILE_CHANGED,网上找了很多方案没有解决,下面是我自己的解决过程。1.问题描述我们用的套壳Android,网页发布在远程服务器,Android壳安装在ipad上前端用的组件是el-upload,点......
  • NumPy和数组
    1.NumPy是什么NumPy(NumericalPython的缩写)是一个开源的Python科学计算模块,其中包含了许多实用的数学函数,用来处理数值型数据。NumPy中,最重要和使用最频繁的对象就是N维数组。为什么要学习NumPy?1.很多更高级的扩展模块都依赖于NumPy,比如pandas2.NumPy中有计算平均数、中......
  • iperf报错broken pipe和bad file descriptiopn
    在进行iperf测试时,出现了两个错误:(1)iperf3:error-selectfailed:badfiledescriptor(2)iperf3:error-unabletosendconrolmessage:brokenpipe这两个错误都是在客户端出现的。根据iperf源码,分析了这两个错误的调用函数以及可能出错原因。1、iperf简介网络性能评估主......
  • 字符数组与字符串
    一、字符数组1.字符数组初始化类型数组名[长度]={元素1,元素2...};类型数组名[长度]=“abcde”;chara[5]={'a','b','c','d','e'};charb[5]="abcde";//错误:末尾还需要存放\0for(inti=0;i<5;i++)cout<<a[i];2.字符数组的输入输出使用cin,cout......
  • Spring Junit 测试报错 java.lang.IllegalStateException
    写测试代码的时候出现了java.lang.IllegalStateException:CouldnotloadTestContextBootstrapper[null].Specify@BootstrapWith's'value'attributeormakethedefaultbootstrapperclassavailable.代码如下:packagecom.example.service;importcom.example.c......
  • Ruoyi集成flyway后启动报错的解决方法
    ruoyi系列框架是开源中非常好的源码平台,使用宽松的开源协议进行源代码的开放。不管是单体版、前后端分离甚至是微服务架构,均提供了相应的代码。基于ruoyi可以做自己的后台系统,也可以学习很多技术的集成。而flyway是java里面的数据库脚本自动管理工具,使用flyway可以在应用程序升级......
  • fasterxml ToStringSerializerBase报错
    ToStringSerializerBase报错报错内容整合dubbo时报错Causedby:java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/ser/std/ToStringSerializerBase atcom.fasterxml.jackson.datatype.jsr310.JavaTimeModule.<init>(JavaTimeModule.java:158)~[jackson-dataty......
  • requests 开启charles代理报错
    当前报错urllib3版本:1.26.7解决代理报错的几种方式:配置代理请求proxies={'http':'http://127.0.0.1:8888','https':'http://127.0.0.1:8888'}data=requests.post(url,json=body,headers=headers,verify=False,pr......