C中的平均,最大和最小程序
发布时间:2020-12-16 09:49:37 所属栏目:百科 来源:网络整理
导读:所以我用C编码,我需要提出一些代码,它将从用户那里获取n个数字,并找到它们的最小值,最大值,平均值和平方和.到目前为止,我有平均和平方和部分,但最小值和最大值是咬我的. 请记住,我处于一个非常基本的水平,我还没有到达阵列.我所知道的只是逻辑运算符,函数,循
所以我用C编码,我需要提出一些代码,它将从用户那里获取n个数字,并找到它们的最小值,最大值,平均值和平方和.到目前为止,我有平均和平方和部分,但最小值和最大值是咬我的.
请记住,我处于一个非常基本的水平,我还没有到达阵列.我所知道的只是逻辑运算符,函数,循环以及stdlib.h,math.h和stdio.h库的使用. 这就是我到目前为止所拥有的. #include<stdio.h> int main() { float average; int i,n,count=0,sum=0,squaresum=0,num,min,max; printf("Please enter the number of numbers you wish to evaluaten"); scanf_s("%d",&n); printf("Please enter %d numbersn",n); while(count<n) { min=0; max=0; if(num>max) max=num; if(num<min) min=num; scanf_s("%d",&num); sum = sum+num; squaresum = squaresum + (num*num); count++; } average = 1.0*sum/n; printf("Your average is %.2fn",average); printf("The sum of your squares is %dn",squaresum); printf("Your maximum number is %dn",max); printf("Your minimum number is %dn",min); return(0); } 解决方法
你的算法不太正确.以下是正确的实现:
#include <stdio.h> #include <stdlib.h> #include <limits.h> int main(void) { float average; int n,count = 0,sum = 0,squaresum = 0; int min = INT_MAX,max = INT_MIN; bool gotAnswer = false; /* Don't Let User Enter Wrong Input */ while(!gotAnswer) { printf("Please enter the number of numbers you wish to evaluate: "); if(scanf_s("%d",&n) != 1) { /* User Entered Wrong Input; Clean Up stdin Stream*/ while(getchar() != 'n') { continue; } } else { /* User Input Was Good */ gotAnswer = true; } } /* Clear stdin Stream Just In Case */ while(getchar() != 'n') continue; while(count < n) { /* Don't Let User Enter Wrong Input */ gotAnswer = false; printf("Enter number %d: ",count + 1); if(scanf_s("%d",&num) != 1) { /* User Entered Wrong Input; Clean Up stdin Stream */ while(getchar() != 'n') continue; /* Let User Try Again */ continue; } else { /* User Input Was Correct */ gotAnswer = true; /* Clear stdin Stream Just In Case */ while(getchar() != 'n') continue; } if(num > max) max = num; if(num < min) min = num; sum += num; squaresum += num * num; count++; } average = 1.0 * sum / n; printf("Your average is %.2fn",squaresum); printf("Your maximum number is %dn",min); system("pause"); return 0; } 我添加了错误检查和恢复.如果您对逻辑有任何疑问,请询问. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |