#include <stdio.h>
#include <ctype.h>
float input(void);
float inputdivide(void);
float divide(float num1 ,float num2);
int main(void)
{
int ch ;
float answer;
float firnum , secnum;
while((ch = getchar()) != EOF)
{
if(ispunct(ch) || ch == '\n')
continue;
{
printf("divide\n");
firnum = input();
secnum = inputdivide();
answer = divide(firnum,secnum);
break;
}
}
return 0;
}
float inputdivide(void)
{
float input;
char ch;
while(scanf("%f",&input) != 1)
{
while((ch = getchar()) != '\n')
{
putchar(ch);
}
printf("again!\n");
while(input == 0 )
{
printf("again\n");
break;
}
}
return input;
}
float input(void)
{
float input;
char ch;
while(scanf("%f",&input) != 1)
{
while((ch = getchar()) != '\n')
putchar(ch);
printf("again!\n");
}
return input;
}
float divide(float num1 ,float num2)
{
float output;
output = num1 / num2 ;
printf("%g / %g = %g\n",num1,num2,output);
return output;
}
想要输入第二个数的时候0的时候把0截断,但是程序截不断,为什么inputdivide应该怎么改?
scanf("%f",&input) != 1如果改成scanf("%f",&input) == 1程序就输出不了的数,为什么?