当前位置: 代码迷 >> C语言 >> [求助]请各位看看这条题只用WHILE和 IF行不...
  详细解决方案

[求助]请各位看看这条题只用WHILE和 IF行不...

热度:284   发布时间:2006-05-05 08:05:00.0
[求助]请各位看看这条题只用WHILE和 IF行不...

题目大概是这样的:输入一些数字,输入0终止或者到输入一定数目既数字终止...PRINT最大和最小值出来.

#include <stdio.h>
#include <stdlib.h>
#define MAX 5

int maximum = 0,
minimum = 0,
ctr = 0,
number[MAX],
temp = 1;


int main()
{
ctr = 0;
while ( ctr < MAX && temp != 0 )
{
puts("Enter a number: (Quit = 0)");
scanf("%d", &number[ctr]);
maximum = number[0];
minimum = number[0];
temp = number[ctr];
if ( temp > maximum && temp !=0 )
{ maximum = temp; }
if ( temp < minimum && temp !=0 )
{ minimum = temp; }

ctr++;
}
if (number[0] == 0)
puts("No number is entered");
else
{printf("Largest number is %d\n",maximum);
printf("Smallest number is %d\n",minimum);}
system("PAUSE");

return 0;
}

我看了N小时都看不出来.....请各位来帮忙

搜索更多相关的解决方案: WHILE  

----------------解决方案--------------------------------------------------------
以下是引用Uruz7在2006-5-5 8:05:00的发言:

题目大概是这样的:输入一些数字,输入0终止或者到输入一定数目既数字终止...PRINT最大和最小值出来.

#include <stdio.h>
#include <stdlib.h>
#define MAX 5

int maximum = 0,
minimum = 0,
ctr = 0,
number[MAX],
temp = 1;


int main()
{
ctr = 0;
while ( ctr < MAX && temp != 0 )
{
puts("Enter a number: (Quit = 0)");
scanf("%d", &number[ctr]);
maximum = number[0];
minimum = number[0];
temp = number[ctr];
if ( temp > maximum && temp !=0 )
{ maximum = temp; }
if ( temp < minimum && temp !=0 )
{ minimum = temp; }

ctr++;
}
if (number[0] == 0)
puts("No number is entered");
else
{printf("Largest number is %d\n",maximum);
printf("Smallest number is %d\n",minimum);}
system("PAUSE");

return 0;
}

我看了N小时都看不出来.....请各位来帮忙

还用上数组了,您这是杀鸡用牛刀啊。稍后,给你个短小精悍的代码。


----------------解决方案--------------------------------------------------------
以下是引用Uruz7在2006-5-5 8:05:00的发言:

题目大概是这样的:输入一些数字,输入0终止或者到输入一定数目既数字终止...PRINT最大和最小值出来.

#include <stdio.h>
#include <stdlib.h>
#define MAX 5

int maximum = 0,
minimum = 0,
ctr = 0,
number[MAX],
temp = 1;


int main()
{
ctr = 0;
while ( ctr < MAX && temp != 0 ) //循环,当终止不等于0并且ctr<MAX就执行
{
puts("Enter a number: (Quit = 0)");
scanf("%d", &number[ctr]);
maximum = number[0]; //把number[0]作为maximum,minimum的初值
minimum = number[0];
temp = number[ctr]; //把当前数组元素的值给TEMP;
if ( temp > maximum && temp !=0 ) //当前数组元素的值大于maximum就重新给maximum赋值
{ maximum = temp; }
if ( temp < minimum && temp !=0 ) //和上面那句相反
{ minimum = temp; }

ctr++;
}
if (number[0] == 0)
puts("No number is entered");
else
{printf("Largest number is %d\n",maximum);
printf("Smallest number is %d\n",minimum);}
system("PAUSE"); //这句是DEV-CPP里面的,意思是"按任意键继续...."

return 0;
}

我看了N小时都看不出来.....请各位来帮忙

另外,代码效率比较低,没有必要使用全局变量.希望LZ好好领会.


----------------解决方案--------------------------------------------------------
//大奖赛上有N个评委(N>2),求去掉一个最高分、去掉
//一个最低分后的平均分。N个分数由键盘输入。
#include<stdio.h>
#define N 10
int main( )
{ int i=0;
float aver,max,min,score;
while(i<N){
printf("score %d: ",++i);
scanf("%f",&score);
if(i==1)aver=max=min=score;
else {
if(score>max)max=score;
if(score<min)min=score;
aver+=score; }
} aver=(aver-max-min)/(N-2);
printf("average score = %f\n",aver);
}
----------------解决方案--------------------------------------------------------
  相关解决方案