c语言求无效比例

来源:百度知道 编辑:UC知道 时间:2024/06/29 21:29:35
输入n个数字
可以算出上个数字和这个数字之间的比例 这个比例不要显示 然后把比例和几个特定的数字相比较
显示出和比例最接近的特定数字

但如果这个比例和所有的特定比例相差都超过0.2的话,则要显示“无效比例”

#include <stdio.h>
#define SPNUM1 1
#define SPNUM2 2
#define SPNUM3 3//特定的数字
main(){
float arr[5]; //输入n个数字
int i,j;
float per,p1,p2,p3;
for(i=0;i<5;i++){//i<n
printf("enter number%d:",i+1);
scanf("%f",&arr[i]);//输入n个数字
}
for(i=0;i<4;i++){
j=i+1;
per=arr[i]/arr[j];//算出上个数字和这个数字之间的比例
p1=per-SPNUM1;
p2=per-SPNUM2;
p3=per-SPNUM3;
if((p1>0.2||p1<-0.2)&&(p2>0.2||p2<-0.2)&&(p3>0.2||p3<-0.2))
printf("No efect pers.\n");//无效比例
else{

if(p1<p2&&p1<p3)//显示出和比例最接近的特定数字
printf("%d is SPNUM1\n",SPNUM1);
if(p2<p3&&p2<p1)
printf("%d is SPNUM2\n",SPNUM2);
if(p3<p1&&p3<p2)
printf("%d is SPNUM3\n",SPNUM3);
if(p1==p2&&p2==p3)
printf("\n%d %d %d",SPNUM1,SPNUM2,SPNUM3);
}
}
getch();
}

不是太清楚意