鱼C论坛

 找回密码
 立即注册
查看: 1232|回复: 7

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

[复制链接]
发表于 2020-10-9 09:53:18 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



}
最佳答案
2020-10-9 10:23:51
本帖最后由 LuLD 于 2020-10-9 10:46 编辑

scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t[10]); 这么写输入的值不会传递到 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[10], minus;
        int i;
        printf("请输入十天的平均气温:");
        //scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f", &t[10]);
        for (i = 0; i < 10; i++)
        {
                scanf("%f", &t[i]);
        }
        max = t[0];
        min = t[0];

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



}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-9 10:23:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 LuLD 于 2020-10-9 10:46 编辑

scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t[10]); 这么写输入的值不会传递到 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[10], minus;
        int i;
        printf("请输入十天的平均气温:");
        //scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f", &t[10]);
        for (i = 0; i < 10; i++)
        {
                scanf("%f", &t[i]);
        }
        max = t[0];
        min = t[0];

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



}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-9 10:52:49 | 显示全部楼层
数组t[10]中有十个数组元素,下标从0开始,所以最大为t[9];scanf中&t[10]意思是给数组中第十一个元素赋值。
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[10],minus;
int i;
printf("请输入十天的平均气温:");
//scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t[10]);
for (i = 0; i < 10; i ++)
{
        scanf("%lf", &t[i]);
}
max=t[0];
min=t[0];
//minus=max-min;
//printf("温差为:%f",minus);
for(i=0;i<10;i++)
{
if(max<t[i])
max=t[i];
if(min>t[i])
min=t[i];
}
minus=max-min;
printf("温差为:%f",minus);
system("pause");
return 0;



}

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
君亦南 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-9 10:53:40 | 显示全部楼层
LuLD 发表于 2020-10-9 10:23
scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&t[10]); 这么写输入的值不会传递到 t 的数组里的

minus=max-mi ...

写了个跟你一模一样的程序。我今天见鬼了,输入10个数就是输不进去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

想看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-9 11:12:17 | 显示全部楼层

你已经发出来了,我就不发了。用 for 循环,while 循环都写不进那个 t[10] 数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-9 11:19:41 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-10-9 11:31 编辑
心驰神往 发表于 2020-10-9 10:52
数组t[10]中有十个数组元素,下标从0开始,所以最大为t[9];scanf中&t[10]意思是给数组中第十一个元素赋值 ...


你的程序存在四个错误一个告警:
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");语句

评分

参与人数 1荣誉 +1 鱼币 +2 贡献 +2 收起 理由
君亦南 + 1 + 2 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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没报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 22:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表