RE求助求改
查看原帖
RE求助求改
1467259
Aphrodite2楼主2024/9/23 15:36

求助如何优化或者改正程序

#include<stdio.h>
double main(){
	double a , b , c , d , x[2] , left = -101 , mid , j , k;
	int i = 0;
	scanf("%lf%lf%lf%lf", &a , &b , &c , &d);
	double fuc(double y){
		return a * y * y * y + b * y * y  + c * y + d;
	}
	while(left <= 100){
		left = left + 1;
	 	if(fuc(left) == 0 ){
		    x[i] = left;
		    i ++;
		    if(i == 2){
		    	break;
			}
			continue;
			}
		if(fuc(left) * fuc(left + 1) > 0){
			continue;
		}
		if(fuc(left) * fuc(left + 1) < 0){
			j = left;
			k = left + 1;
			mid = (2 * j + 1) / 2;
			while(k - j >= 0.01){
				if(fuc(mid) * fuc(j)>0){
					k = mid;
					mid = (j + k) / 2;
				}
				else if(mid == 0){
					break;
				}
				else{
					j = mid;
					mid = (j + k) / 2;
				}
			}
			x[i] = mid;
			i ++;
			if(i==2){
				break;
			}
		};	
}
	printf("%.2lf %.2lf %.2lf",x[0],x[1],x[2]);
	return 0;
}

2024/9/23 15:36
加载中...