请问大神,我哪错了
C:\Users\Administrator\Desktop编程找出用户输入的一串数值中的最大数。
要求:需要提示用户一个一个地输入数据;当用户输入一个不大于0的数值时,表示输入结束。此时应输出一串数值中的最大值;
#include<stdio.h>
int main()
{
int n,max,n1=0,n2;
do
{
printf("Enter a number:",n);
scanf("%d",&n);
n2=n1;
n1=n;
if(n1>n2)
max=n1;
else
max=n2;
}while(n>0);
printf("The largest number is :%d",max);
return 0;
} 以上是我的程序 忘了说,这个程序0报错,但是逻辑错误,输出结果只会是输入的最后一个数。{:10_266:} 是c语言哦{:10_266:} 还有,如果可以的话能不能顺便教教我怎么把程序里的整型换成浮点型。多谢大神了,我愿意献上我的膝盖!{:10_266:} #include<stdio.h>
int main()
{
int n,max = 0;
do
{
printf("Enter a number:");
scanf("%d",&n);
if(n > max)
max = n;
}while(n>0);
printf("The largest number is :%d",max);
return 0;
} 每当我闭上眼 发表于 2018-11-14 22:03
棒!多谢! 每当我闭上眼 发表于 2018-11-14 22:03
大神,您能不能教教我怎么把这个程序里的整型换成浮点型?{:10_297:}老脸一红,厚脸皮的一问。 而且。。。虽然大神回复的很好,但是我还是想知道自己错在了哪里,因为这样我才知道自己哪块知识有问题。请各位帮我纠纠错。拜托了!{:10_254:} 你的错误在于:n2=n1;n1=n;之后的一次循环n2所赋的值上次输入的那个n,当最后输入的n<0时,你把n2赋给了max,所要输出的n2也就还是上一次输入的值,也就是你所说的最后输入的值,不知道我说明白了没
Canlovey 发表于 2018-11-14 22:32
你的错误在于:n2=n1;n1=n;之后的一次循环n2所赋的值上次输入的那个n,当最后输入的n
嗯,,,就是说当我输入的n<0时,它还会再往下执行一次完整的任务才退出吗?{:10_254:} 整型换成浮点型,只要把代码中的int改成float,%d改成%f即可,你的错误已经有人回答啦 是的,就是这个意思,n1的值被赋给n2,而n1=n又使得n1的值就为你上次输入的那一个值。 VTR 发表于 2018-11-14 22:45
嗯,,,就是说当我输入的n
不过我比较习惯用for,do while 倒是不怎么用,我也是初学者,有机会一起交流啊~ 每当我闭上眼 发表于 2018-11-14 22:50
整型换成浮点型,只要把代码中的int改成float,%d改成%f即可,你的错误已经有人回答啦
嗯嗯,谢谢,但是我试了下,当我输入的有比如75.2295这样的数,它运行下来就不对了。。。因为本人是小白我好多东西不明白。这个问题要怎么解决呢?谢谢大神了{:10_266:} Canlovey 发表于 2018-11-14 22:51
是的,就是这个意思,n1的值被赋给n2,而n1=n又使得n1的值就为你上次输入的那一个值。
嗯嗯,知道自己哪错了我好开心!谢谢大神的帮助。{:10_266:} Canlovey 发表于 2018-11-14 22:56
不过我比较习惯用for,do while 倒是不怎么用,我也是初学者,有机会一起交流啊~
嗯!好的! VTR 发表于 2018-11-14 23:01
嗯!好的!
方便加个联系方式?我学到指针了,感觉循环这一块还挺熟的,你有问题的话都可以问我,如果我能帮上忙的话...网站基本上就一天上一次.. Canlovey 发表于 2018-11-14 23:19
方便加个联系方式?我学到指针了,感觉循环这一块还挺熟的,你有问题的话都可以问我,如果我能帮上忙的话 ...
我没有发消息权限。您给我发个QQ号 我加你吧,还是别的也行。但不是说这个论坛不可以留联系方式吗? Canlovey 发表于 2018-11-14 23:19
方便加个联系方式?我学到指针了,感觉循环这一块还挺熟的,你有问题的话都可以问我,如果我能帮上忙的话 ...
我也没权限加坛友{:10_266:}
页:
[1]
2