最大值最小值的赋值
#include <stdio.h>#include <string.h>
struct book{
double price;
char name;
};
int main()
{
int n, i, t1, t2;
double max, min;
struct book a;
max = 1;
min = 13;
t1 = t2 = 0;
scanf("%d", &n);
for ( i=0; i<n; i++ )
{
scanf("\n");
gets(a.name);
scanf("%lf", &a.price);
if ( max < a.price )
{
max = a.price;
t1 = i;
}
if ( min > a.price )
{
min = a.price;
t2 = i;
}
}
printf("%.2lf, %s\n", a.price, a.name);
printf("%.2lf, %s\n", a.price, a.name);
return 0;
}
比如这个代码中max刚开始为什么之能为-1,0,1。min之能是>=13的数。
最大值和最小值的赋值有什么原则吗 语文没学好吧?没看懂你说什么 没看你的代码,但我觉得没啥区别,都是迭代 scanf("\n"); 这句是啥意思 因为max会和数组中的值一一比较,从数组第一个元素开始,如果数组中该元素的值比max大,就把那个值赋给max。比如数组有n个元素,会比较n次。如果max定的特别小,那么数组中的最大元素是第几号,就发生几次“赋值给max”的操作,之后max拿到了最大值,只会比较大小,不会有赋值操作。
问题在于如果你max原本的值比数组最大值还大,那么进行n次操作也不会对max赋值一次。max拿不到数组的最大值。
同理min如果定的特别小,也就拿不到数组的最小值。
所以编程开发中获取数组的最值,一定是将数组中某个值赋给max或min,这样一定能得到最值。 倒戈卸甲 发表于 2020-4-19 09:57
因为max会和数组中的值一一比较,从数组第一个元素开始,如果数组中该元素的值比max大,就把那个值赋给max ...
thank you
页:
[1]