问题标题
用c语言输入一组数据,输出最大最小值,求c语言程序讲解: 输入一组数据,求最大值,最小值,和,平均
2019-7-3来自ip:18.156.193.207的网友咨询
浏览量:318 手机版
问题补充:
用c语言输入一组数据,输出最大最小值,求c语言程序讲解: 输入一组数据,求最大值,最小值,和,平均值...
网友答案
这个程序可以了。
我在vc6中通过调试运行了#include#includevoid main(){float max,min,num;printf("input a number:");scanf("%f",&num);max=min=num;printf("input another number(Y/N):");while(getch()==('Y'|'y')){scanf("%f",&num);if(num>max)max=num;if(nummin=num;printf("input another number(Y/N):");}printf("max=%g,min=%g",max,min);}
网友答案
#includevoid main(){float a10,sum=0,aver,max,min; //以输入10个数为例int i;for (i=0;iscanf("%f",&ai);max=a0;min=a0;for (i=0;i{if (maxmax=ai;if (aimin=ai;sum=sum+ai;}aver=sum/10;printf("max=%f min=%f sum=%f aver=%f\n",max,min,sum,aver);}如果想要定义一个子函数的话,可以不定义数组的大小,也不用初始化数组#includeint main( float a,int n ){float sum=0,aver,max,min; int i;max=a0;min=a0;for (i=0;i{if (maxmax=ai;if (aimin=ai;sum=sum+ai;}aver=sum/10;printf("max=%f min=%f sum=%f aver=%f\n",max,min,sum,aver);return 0;} 通过主函数调用即可
网友答案
#includeint main(){int x,i,count,max,min,sum;// 定义一些变量float avg; // 定义平均值变量,因为可能有小数,所以为floatchar c; // 定义一个用于判断回车的charprintf"请输入一组数据以回车结束\n";scanf("%d",&x); // 输入第一个数字sum=x; // 因为只有一个,赋值给和变量count=1; // 计数器赋值为1min=x; // 因为只有一个,最小值为输入的这个数max=x; // 因为只有一个,最大值为输入的这个数for(i=0;;i++) // 进入循环,没有设置结束判断{scanf("%d",&x); // 不断输入数字c=getchar); // 同时存储在用于判断回车的char变量中count++; // 计数器增加sum+=x; // 求和if (x>=max)max=x; // 判断是否比max中的数字大,是的话存值到max if (min>=x) min=x; // 判断是否比min中的数字小, 是的话存值到minif(c=='\n')break; // 判断输入的是否是回车,是的话中止循环}avg=(float)sum/count; // 求平均值printf"最大值为: %d\n",max;printf"最小值为: %d\n",min;printf"平均值为: %f\n",avg;return 0;}还有不明白的么
网友答案
#include #include #include #include #define MAX(a, b) (a >b ? a : b)#define MIN(a, b) (a #define POSITIVE(a) (a >0 ? 1 : 0)#define NEGTIVE(a) (a int main() {printf("Input:\n");int max_size = 128; // max size, can be extendeddouble *data = (double*) malloc(max_size * sizeof(double));// allocate memoryint num = 0;while (1){char szBuf16;memset(szBuf, 0, 16);scanf("%s", szBuf);if (0 == strcmp(szBuf, "over")) break;//input "over" as input overdatanum++ = atof(szBuf);if (num == max_size) // extend memory{max_size *= 2;data = (double*) realloc(data, max_size);}}double max = data0, min = data0;int posNum = 0, negNum = 0;for (int i = 0; i {max = MAX(max, datai);min = MIN(min, datai);posNum += POSITIVE(datai);negNum += NEGTIVE(datai);}printf("\nOutput:\n");printf("max: %f\nmin: %f\npositive num: %d\nnegtive num: %d\n",max, min, posNum, negNum);free(data); // free memoryreturn 0;}数据输入以“over”结束
网友答案
#includeint main(){int i,max,min,n,a105;scanf("%d",&n);scanf("%d",&a1);max=a1; min=a1;for (i=2;i{scanf("%d",&ai);if (ai>max) max=ai;if (ai}printf("max=%d min=%d\n",max,min);}
网友答案
#include#includeint main(){int n,i,j,tmp,sum,a1000;printf"请输入n的值:\n";scanf("%d",&n);printf"请输入%d个数:\n",n;for(i=0;i{scanf("%d",&ai); //录入数据。
sum=sum+ai; //直接求和,方便后面求平均值 } for(i=0;ifor(j=i+1;jif(ai” {tmp=ai;ai=aj;aj=tmp; }printf"平均值为%d,最大值为%d,最小值为%d",sum/n,a0,an-1;printf"排序后的数组为:\n";for(i=0;iprintf("%d ",ai);system("pause"); return(0);}
网友答案
C语言中求最大值和最小值,一般都是使用假设法,即先假设某个数是最大值和最小值,然后遍历比较即可。
下面实例,求一个数组中的最大值和最小值,先假设a0是最大值,同时也是最小值,然后遍历数组进行比较,得出结果。
#includeint main() { int a = {1,2,3,4,5,6,7,8,9,10};int max, min;max = min = a0; //假设第1个元素即是最大值也是最小值。
int *p = a; //遍历数组,找出数组a中的最大数和最小数for (int inx=0; inx!=sizeof(a) / sizeof(int); ++inx) {if (*(p+inx) >max) max = *(p + inx); else if (*(p+inx) }printf"最大数:%d\t最小数:%d\n", max, min;return 0;}
网友答案
#includemain(){ int n,max,min,sum=0,i=0;scanf("%d",&n);max=n;min=n;while(n!=0){if(maxif(min>n) min=n;sum+=n;i++; scanf("%d",&n);}printf("max = %d\nmin = %d\nsum = %lf\n",max,min,(double)sum/i);}如图所示,望。
。
。
。
。
。
网友答案
#include<stdio.h>int fun1(int *a){int i, b, max;max = a0;for (i = 1; i < 3; i++){if (ai >= max)b = ai;}return b;}int fun2(int *a){int i, c, min;min = a0;for (i = 1; i < 3; i++){if (ai <= min)c = ai;}return c;}int main(){int i, a3;printf("input three counts:");for (i = 0; i < 3; i++)scanf("%d", &ai);printf("max is %d\n", fun1(a));printf("min is %d", fun2(a));}祝你愉快!上面这个没有分析,下面这个和上面的一样的程序,有分析#include<stdio.h>int fun1(int *a){int i, b, max;max = a0; // 先让最大值为a0for (i = 1; i < 3; i++) // for的目的就是比较出最大值,把最大值付给b{if (ai >= max)b = ai;}return b; // 反回最大值}int fun2(int *a){int i, c, min;min = a0; // 先让最小值为a0for (i = 1; i < 3; i++) // for的目的就是比较出最小值,把最小值付给c{if (ai <= min)c = ai;}return c; // 反回最小值}int main(){int i, a3;printf("input three counts:");for (i = 0; i < 3; i++)scanf("%d", &ai);printf("max is %d\n", fun1(a));printf("min is %d", fun2(a));}祝你愉快!
网友答案
#include"stdio.h"int main(){int a8,i,j,k,max,min;printf("input 8 numbers:\n");scanf("%d",&a0);min=max=a0;j=k=0;for(i=1;iscanf("%d",&ai);if(ai>max){max=ai;j=i;}if(aimin=ai;k=i;}} //括号位置在这里 ,你弄错位置了。
printf("%d\n",j);printf("%d\n",k);return 0;//不是这里}
我来回答
验证码:
大家还关注