You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言产品信息打印与EOF输入处理及最高销量筛选问题咨询

C语言产品信息管理程序修复方案

修复后完整代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define SIZE 6

void DisplayData_F3_60897(int Sales_60897[SIZE], int Quantity_60897[SIZE], float Cost_60897[SIZE]);
int Analysis_F3_60897(int Sales_60897[SIZE], int Quantity_60897[SIZE], float Cost_60897[SIZE]);

int main(void)
{
    int i;
    int Sales_60897[SIZE];
    int Quantity_60897[SIZE];
    float Cost_60897[SIZE];

    // 先将所有数组元素初始化为默认值-60897
    for(i = 0; i < SIZE; i++)
    {
        Sales_60897[i] = Quantity_60897[i] = -60897;
        Cost_60897[i] = -60897.0f;
    }

    for(i = 0; i < SIZE; i++)
    {
        printf("\n___ID为%d的产品___\n",i);
        printf("请输入三个值(销量、库存、成本):");
        int input_cnt = scanf("%d%d%f", &Sales_60897[i], &Quantity_60897[i], &Cost_60897[i]);
        // 输入不足3个(触发EOF或格式错误),按要求重置所有未正确输入的字段
        if(input_cnt != 3)
        {
            // 当前产品全部重置为-60897
            Sales_60897[i] = Quantity_60897[i] = -60897;
            Cost_60897[i] = -60897.0f;
            // 剩余未赋值元素全部设为-60897
            for(int j = i+1; j < SIZE; j++)
            {
                Sales_60897[j] = Quantity_60897[j] = -60897;
                Cost_60897[j] = -60897.0f;
            }
            break;
        }
    }

    DisplayData_F3_60897(Sales_60897, Quantity_60897, Cost_60897);
    Analysis_F3_60897(Sales_60897, Quantity_60897, Cost_60897);
    return 0;
}

// 展示数组数据,要求全部使用while循环
void DisplayData_F3_60897(int Sales_60897[SIZE], int Quantity_60897[SIZE], float Cost_60897[SIZE])
{
    int i=0;
    
    printf("\n\nDisplayData_F3_60897 由学生Raghad创建 - 班级(F3)\n\n");
    
    printf("销量数组");
    printf("\n数组元素:\t");
    while(i < SIZE){
        if(Sales_60897[i] > 0)
            printf("%d  ", Sales_60897[i]);
        i++;
    }

    i = 0;
    printf("\n\n库存数组");
    printf("\n数组元素:\t");  
    while(i < SIZE){
        if(Quantity_60897[i] > 0)
            printf("%d  ", Quantity_60897[i]);
        i++;
    } 

    i = 0;
    printf("\n\n成本数组");
    printf("\n数组元素:\t");
    while(i < SIZE){
        if(Cost_60897[i] > 0)
            printf("%.3f  ", Cost_60897[i]);
        i++;
    }
}

// 分析函数:输出最高销量产品信息,返回成本大于200的产品数量
int Analysis_F3_60897(int Sales_60897[SIZE], int Quantity_60897[SIZE], float Cost_60897[SIZE])
{
    int largest,i,N=200,count=0;
    char INFO[]= "Raghad_Sami_班级_F3_ID 60897";
    printf("\n\n函数Analysis_F3_60897由学生 %s 创建\n\n",INFO);
    
    // 第一步:计算最高销量
    largest = Sales_60897[0];
    for (i = 0; i < SIZE; i++)
    {
        if (Sales_60897[i] > largest && Sales_60897[i] != -60897)
        {
            largest = Sales_60897[i];
        }
        // 统计成本大于200的有效产品数量
        if(Cost_60897[i] > N && Cost_60897[i] != -60897)
        {
            count++;
        }
    }
    
    printf("\t-------------------------------------------------------------------------\n");
    printf("\t\t\t\t最高销量产品列表\n");
    printf("\t-------------------------------------------------------------------------\n");
    printf("\t\t产品编号\t 月销量\t\t 库存\t\t 成本\n");
    // 第二步:遍历输出所有销量等于最高值的产品
    for(i = 0; i < SIZE; i++)
    {
        if(Sales_60897[i] == largest && Sales_60897[i] != -60897)
        {
            printf("\t\t产品%d:\t %d\t\t %d\t\t %.3f\t\n",i, Sales_60897[i], Quantity_60897[i], Cost_60897[i]);
        }
    }
    printf("\t-------------------------------------------------------------------------");
    printf("\n\t成本大于200的产品总数 = %d",count);
    printf("\n\t-------------------------------------------------------------------------");
  
    return count;
}

主要修复内容

  • 输入逻辑修复:校验scanf返回值是否为3,若输入不足3个(触发EOF/格式错误),将当前产品三个字段全部设为-60897,剩余未赋值的数组元素也统一设为-60897后终止输入
  • 展示函数修改:按要求将所有遍历逻辑改为while循环实现
  • 分析函数逻辑修复:
    • 修正最高销量计算逻辑,将最大销量初始化移到循环外,避免每次循环被重置
    • 新增遍历逻辑,输出所有销量等于最高值的产品完整信息
    • 仅统计有效产品(字段值不为-60897)中成本大于200的数量
  • 数组初始化修正:程序启动时先将所有数组元素初始化为默认值-60897,避免默认值为0导致逻辑错误

内容的提问来源于stack exchange,提问作者Raghad Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:06:03