问题遇到的现象和发生背景
for循环使用scanf读入数组后再将数组值打印出来,如何删除末尾的'\n'?当在下面通过下标索引调用数组元素的时候,打印出来的三者中最小值总是0.00000,但其实并未输入0值元素。
输入为:
(0.1,0.1)
(0.05,0.1)
(0.1,0.05)
问题相关代码,请勿粘贴截图
for(j=0;j<=2;j++)
{
//if(gets((char)x2)!=NULL||gets((char)y2)!=NULL)
fflush(stdin);
if(scanf(" (%f,%f)", &x2, &y2)!=EOF)
{
r2=x2*x2+y2*y2;
if(r2<R)
{
yellow[j]=r2;
n++;
}
printf("%f",yellow[j]);
}
}
printf("%f",yellow[2]);
printf("%d\n",n);
if(m != 0 || n != 0)
{
if(n==3)
{
if(yellow[1]<yellow[2]&& yellow[1]<yellow[0] )
{
min2=yellow[1];
}
else if(yellow[2]<yellow[1] && yellow[2]<yellow[0])
{
min2=yellow[2];
}
else if(yellow[0]<yellow[1] && yellow[0]<yellow[2])
{
min2=yellow[0];
}
}
else if(n==2)
{
if(yellow[1]<yellow[0])
{
min2=yellow[1];
}
else
{
min2=yellow[0];
}
}
else if(n==1)
{
min2=yellow[0];
}
else
{
min2=R;
}
printf("%f\n", min2);
运行结果及报错内容
我的解答思路和尝试过的方法
通过 if(scanf(" (%f,%f)", &x2, &y2)!=EOF)希望不输入末尾空格或'\n'
我想要达到的结果
三个非零的数组值,比较大小后能输出大于0的最小值。