qq_33562632 2022-04-21 20:00 采纳率: 83.3%
浏览 23
已结题

数组增减下标出现重复数字是怎么回事?甚至还少了一个原有的数字。

#include<stdio.h>
#include<stdlib.h>
#define N 5

int main()
{
double powers[] = { 42322,45771,40901,4134,40907 };
int count = 5; //表示数组元素的个数
double deletepower;
int deleteindex = -1; //要删除战斗力的下标,给一个不可能的初值,方便判断
int i, j; //循环变量
double xu; //临时变量
double insertpowers;

printf("请输入要删的战斗力;");
scanf_s("%lf", &deletepower);

for (i = 0; i < count; i++)
{
    if (deletepower == powers[i])                                                                    //寻找战斗力        
    {
        deleteindex = i;
        break;
    }
}
if (-1 == deleteindex)
{
    printf("没有找到要删的战斗力\n");                                                                //没意有找到战斗力
}
else
{
    for (i = deleteindex; i < count - 1; i++)
    {
        powers[i] = powers[i + 1];                                                                    //数组长度-1    
    }
    count--;

}



for (i = 0; i < N; i++)
{
    for (j = 0; j <N; j++)
    {
        if (powers[i] > powers[j])
        {
            xu = powers[i];                                                                                //排顺序数字
            powers[i] = powers[j];
            powers[j] = xu;
        }
    }
}

printf("删除后的结果为: \n");
for (i = 0; i < count; i++)
{
    printf("%.lf\t", powers[i]);
}

printf(" \n");
printf("输入新的战斗力:");
scanf_s("%lf", &insertpowers);
powers[count] = insertpowers;
count++;

for (i = 0; i < N; i++)
{
    for (j = 0; j <N; j++)
    {
        if (powers[i] > powers[j])
        {
            xu = powers[i];                                                                                //排顺序数字
            powers[i] = powers[j];
            powers[j] = xu;
        }
    }
}

printf("插入后的结果为: \n");
for (i = 0; i < N; i++)
{
    printf("%.lf\t", powers[i]);
}




return 0;

}

img

  • 写回答

3条回答 默认 最新

  • GY Leo 2022-04-21 20:26
    关注

    N 是宏, 一直为5, 当你删除和添加的时候, 你不可以使用N, 要使用更改后的count.

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

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月21日

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题