来个大佬纠错,感谢各位

代码运行出现问题,但算法应该没错

#include<stdio.h>
  #include<math.h>
     int main(){
     	int i;
     	float  s,v=3.1415926;
     	float angle,L;
     	while(1){
     		
		 
     	printf("请输入函数值。\n");
     	scanf("%f",&L);
     	printf("请选择反三角函数求值的类型。\n");
     	   printf("1-sin,2-cos,3-tan。\n");
     	scanf("%d",&i);
     	
     	if(i==1)
     	{
     		//float  s,v=3.1415926;
     		//	s=(angle*1/180)*v;
     	for(angle=0;angle<=360;angle+=0.1)
     		{
     			s=(angle*1/180)*v;
     			if(-0.5<L-sin(s)<0.5)
     			{
     				printf("angle=%f",angle);
     			break;
				 }	
		 }
		 }
     	else if(i==2)
     	{//float  s,v=3.1415926;
     			//s=(angle*1/180)*v;
     	for(angle=0;angle<=360;angle+=0.1)
     		{
     			s=(angle*1/180)*v;
     			if(-0.5<L-cos(s)<0.5)
     			{
     				printf("angle=%f",angle);
     				break;
				 }	
		 }
	   }
     	else if(i==3)
     	{//float  s,v=3.1415926;
     		//	s=(angle*1/180)*v;
     		for(angle=0;angle<=360;angle+=0.1)
     		{
     			s=(angle*1/180)*v;
     			if(-0.5<L-tan(s)<0.5)
     			{
     				printf("angle=%f",angle);
     				break;
				 }
		 }
	}
	  else {
	  return(false);
	  }
}
     return 0;	
	 
    }
	 

 

1.用逻辑与和两次比较替换连续比较
2.把0.5设置的更小一点

#include <stdio.h>
#include <math.h>
int main(){
    int i;
    float s, v = 3.1415926;
    float angle, L;
    while (1){
        printf("请输入函数值。\n");
        scanf("%f", &L);
        printf("请选择反三角函数求值的类型。\n");
        printf("1-sin,2-cos,3-tan。\n");
        scanf("%d", &i);
        if (i == 1){
            //float  s,v=3.1415926;
            //    s=(angle*1/180)*v;
            for (angle = 0; angle <= 360; angle += 0.1){
                s = (angle * 1 / 180) * v;
                if (-0.0001 < L - sin(s) && L - sin(s) < 0.0001){
                    printf("angle=%f", angle);
                    break;
                }
            }
        }
        else if (i == 2){   //float  s,v=3.1415926;
            //s=(angle*1/180)*v;
            for (angle = 0; angle <= 360; angle += 0.1){
                s = (angle * 1 / 180) * v;
                if (-0.0001 < L - cos(s)&& L - cos(s) < 0.0001){
                    printf("angle=%f", angle);
                    break;
                }
            }
        }
        else if (i == 3){ //float  s,v=3.1415926;
            //    s=(angle*1/180)*v;
            for (angle = 0; angle <= 360; angle += 0.1){
                s = (angle * 1 / 180) * v;
                if (-0.0001 < L - tan(s)  && L - tan(s)< 0.0001){
                    printf("angle=%f", angle);
                    break;
                }
            }
        }
        else{
            return 0;
        }
    }
    return 0;
}

请说明你程序的输入, 你期待的输出, 和实际的输出。 

if(-0.5<L-sin(s)<0.5)不对

应该是if(-0.5<L-sin(s)&&L-sin(s)<0.5)

这个也是if(-0.5<L-tan(s)<0.5)

代码出了什么问题?你得具体说出你的问题