вы можете использовать в sprintf для всей строки.
уведомление в строке:
scanf ("%f%c%f", &A, &op, &B)
оно получает "enter" как "\ n" (ascii 10)
вам нужно пространство между ними:
#include <stdio.h>
int main()
{
float A = 1, B = 1, R = 1;
char op = '+';
char ans[32];
printf ("entrer A op B (sans espaces)\n");
scanf("%f %c %f", &A, &op, &B);
switch (op)
{
case '+' :
R = A+B;
break;
case '-' :
R = A-B;
break;
case '*' :
R = A*B;
break;
case '/' :
if (B!=0)
{
R = A/B;
}
else
{
printf ("on peut pas diviser sur 0");
}
break;
default :
printf ("seulement les operations +,-,*,/ peuvent etre realiser, une par une, veuillez resseyer la saisie de votre operation");
break;
}
if (B!=0 && (op =='+' || op =='-' || op =='*' || op =='/'))
{
sprintf(ans,"%.2f %c %.2f \b= %.2f\n", A, op, B, R);
}
printf("%s", ans);
return 1;
}
вам нужно проверить A, а B это число (проверьте команду "isdigit ()"). почему "B! = 0"?
Если вы хотите, вы можете получить все упражнения от пользователя как одну строку "4 + 5" и проанализировать ее (я так понимаю, вы новичок в C. Parser очень полезен ת Вам лучшепопрактиковаться)