C语言新手求教问题
正在学习C语言,书后题有个不会了,求指教:要求用户每次输入一个的数,当输入零的时候视为最大,而且这些数中并不仅限于整数;下面是例子:
enter a number:60
enter a number:38.3
enter a number:4.89
enter a number:100.62
enter a number:75.2295
enter a number:0
the largest number entered was 100.62
求指教哈,本人小菜鸟刚刚学,学到while 和for循环这里,我想的是应该用while循环while(i!=0)这样,但是就是怎么输出最大的值呢
[解决办法]
#include<stdio.h>
main()
{
int i, max = 0;
while(1)
{
printf("Enter a number:");
scanf("%d",&i);
if(i != 0 && i > max)
max = i;
else if(i == 0)
{
printf("the largest number entered was:%d\n",max);
return -1;
}
}
}
[解决办法]
#include<stdio.h>#define N 10int main(){ float a[N],t; int i,j; printf("请输入10个数:\n"); for(i=0;i<N;i++){ printf("请输入第%d个数\n",i+1); scanf("%f",&a[i]); } for(i=0;i<N-1;i++){ for(j=i+1;j<N;j++){ if(a[i]<a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; } } } printf("最大数为:%f\n",a[0]); return 0;}
[解决办法]
double d;int k;while (1) { printf("enter a number:"); fflush(stdout); rewind(stdin); k=scanf("%lf",&d); if (k==1) { if (d==0.0) break; printf("%lg\n",d); }}
[解决办法]
#include <stdio.h>double d;int k;double maxd;int f;int main() { f=0; while (1) { printf("enter a number(0 for end):"); fflush(stdout); rewind(stdin); k=scanf("%lf",&d); if (k==1) { if (d==0.0) { printf("the largest number entered was %lg\n",maxd); break; } else { if (0==f) { maxd=d; f=1; } else { if (d>maxd) maxd=d; } } } } return 0;}