gpt4 book ai didi

c - 从最小值和最大值查找 ID 号的问题

转载 作者:行者123 更新时间:2023-11-30 16:11:17 24 4
gpt4 key购买 nike

所以我试图制作一个简单的程序来读取值和 ID 号的整数,这样输出将是该值及其 maxID minID 号的最小最大值。输入文件的第一个整数将指示将在循环中读取多少个输入。我的程序编译没有任何问题,最小最大输出是正确的,但是ID号的输出是错误的。有人能帮我诊断这个问题吗?抱歉我的愚蠢问题,我是编程新手。谢谢。

#include <stdio.h>

int main(){

int val[100],id[100];
int i, max, min, size, idmax, idmin,minindex,maxindex;

printf("Enter how many IDs: ");
scanf("%d", &size);

printf("Enter ID numbers and values:\n");
for(i=0; i<size; i++)
{
scanf("%d %d", &id[i], &val[i]);
}


max = min = val[0];

for(i=1; i<size; i++)
{
if(val[i] > max)
{
max = val[i];
maxindex = i;
for(i=0;i<size;i++){
if(id[i]==maxindex){
idmax=id[i];
}
}
}

if(val[i] < min)
{
min = val[i];
minindex = i;
for(i=0;i<size;i++){
if(id[i]==minindex){
idmin=id[i];
}
}
}
}

printf("Max number = %d with ID number = %d\n", max, idmax);
printf("Min number = %d with ID number = %d\n", min, idmin);

return 0;

}

最佳答案

你让问题变得比实际情况更复杂。当运行;列表时,您可以简单地更新 idmaxidmin每当您更新相应的 max 时的值或min :

#include <stdio.h>

int main() {

int val[100], id[100];
int i, max, min, size, idmax, idmin;/// No longer need these: minindex, maxindex;

printf("Enter how many IDs: ");
scanf("%d", &size);

printf("Enter ID numbers and values:\n");
for (i = 0; i < size; i++) {
scanf("%d %d", &id[i], &val[i]);
}

max = min = val[0];
idmin = idmax = id[0];/// Initialize IDs similarly to min and max

for (i = 1; i < size; i++) {
if (val[i] > max) {
max = val[i];
idmax = id[i];/// Only need to change this when max changes
}
if (val[i] < min) {
min = val[i];
idmin = id[i];/// Only need to change this when min changes
}
}

printf("Max number = %d with ID number = %d\n", max, idmax);
printf("Min number = %d with ID number = %d\n", min, idmin);

return 0;
}

关于c - 从最小值和最大值查找 ID 号的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58648847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com