读书人

C语言新手求教有关问题

发布时间: 2012-10-19 16:53:35 作者: rapoo

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;
}

}
}
[解决办法]

探讨

5楼的方法好像只能是在输入整数的情况下吧?而且好像max那里不能保证输出的是最大的

[解决办法]
C/C++ code
#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;}
[解决办法]
C/C++ code
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); }}
[解决办法]
C/C++ code
#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;} 

读书人网 >C语言

热点推荐