君亦南 发表于 2020-10-9 09:53:18

求助 求最大值最小值的差 程序跑不出来 哪里有问题??

#include<stdio.h>
#include<stdlib.h>
int main()
{
double max,min,t,minus;
int i;
printf("请输入十天的平均气温:");
scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t);
max=t;
min=t;
minus=max-min;
printf("温差为:%f",minus);
for(i=0;i<10;i++);
{
if(max<t)
max=t;
if(min>t)
min=t;
}
system("pause");
return(0);



}

LuLD 发表于 2020-10-9 10:23:51

本帖最后由 LuLD 于 2020-10-9 10:46 编辑

scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t); 这么写输入的值不会传递到 t 的数组里的

minus=max-min;
printf("温差为:%f",minus);这两行应该在 for(i=0;i<10;i++) 这个循环之后

for(i=0;i<10;i++); 不应该有 ; 的,里面的循环体不会执行的


#include<stdio.h>
#include<stdlib.h>
int main()
{
        float max, min, t, minus;
        int i;
        printf("请输入十天的平均气温:");
        //scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f", &t);
        for (i = 0; i < 10; i++)
        {
                scanf("%f", &t);
        }
        max = t;
        min = t;

        for (i = 0; i < 10; i++)
        {
                if (max < t)
                        max = t;
                if (min > t)
                        min = t;
        }
        minus = max - min;
        printf("温差为:%.2f\n", minus);
        system("pause");
        return(0);



}

心驰神往 发表于 2020-10-9 10:52:49

数组t中有十个数组元素,下标从0开始,所以最大为t;scanf中&t意思是给数组中第十一个元素赋值。
printf("温差为:%f",minus); minus前面的逗号是中文的。
double变量可以用%f或%lf在printf输出,float变量只能用%f输出
double变量只能用%lf在scanf输入,float变量只能用%f输入
所以scanf应该是scanf("%lf")
minus=max-min; printf("温差为:%f",minus);这两个行代码在上面执行不到for循环温差就出来了

#include<stdio.h>
//#include<stdlib.h>
int main()
{
double max,min,t,minus;
int i;
printf("请输入十天的平均气温:");
//scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t);
for (i = 0; i < 10; i ++)
{
        scanf("%lf", &t);
}
max=t;
min=t;
//minus=max-min;
//printf("温差为:%f",minus);
for(i=0;i<10;i++)
{
if(max<t)
max=t;
if(min>t)
min=t;
}
minus=max-min;
printf("温差为:%f",minus);
system("pause");
return 0;



}

风过无痕1989 发表于 2020-10-9 10:53:40

LuLD 发表于 2020-10-9 10:23
scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t); 这么写输入的值不会传递到 t 的数组里的

minus=max-mi ...

写了个跟你一模一样的程序。我今天见鬼了,输入10个数就是输不进去。

LuLD 发表于 2020-10-9 11:10:27

风过无痕1989 发表于 2020-10-9 10:53
写了个跟你一模一样的程序。我今天见鬼了,输入10个数就是输不进去。

想看看

风过无痕1989 发表于 2020-10-9 11:12:17

LuLD 发表于 2020-10-9 11:10
想看看

你已经发出来了,我就不发了。用 for 循环,while 循环都写不进那个 t 数组

风过无痕1989 发表于 2020-10-9 11:19:41

本帖最后由 风过无痕1989 于 2020-10-9 11:31 编辑

心驰神往 发表于 2020-10-9 10:52
数组t中有十个数组元素,下标从0开始,所以最大为t;scanf中&t意思是给数组中第十一个元素赋值 ...

你的程序存在四个错误一个告警:
test.c(19) : error C2115: '<' : incompatible types      // 此类型不支持所请求的操作。
test.c(20) : error C2115: '=' : incompatible types
test.c(21) : error C2115: '>' : incompatible types
test.c(22) : error C2115: '=' : incompatible types
test.c(26) : warning C4013: 'system' undefined; assuming extern returning int

错误的原因上面说了,改正的方法如下:
      if(max < t[ i ])
      max = t[ i ];
      if(min > t[ i ])
      min = t[ i ];
告警的原因是你注释掉了 #include<stdlib.h>,而没有加上 #include<windows.h> 。因为他的程序最后有 system("pause");语句

心驰神往 发表于 2020-10-9 11:39:20

风过无痕1989 发表于 2020-10-9 11:19
你的程序存在四个错误一个告警:
test.c(19) : error C2115: '' : incompatible types
test.c(22) :...

我用的Devc++5.11没报错
页: [1]
查看完整版本: 求助 求最大值最小值的差 程序跑不出来 哪里有问题??