Пожалуйста, помогите, что это за логическая ошибка ... Скомпилируйте и запустите код и проверьте .. Г это дает непредвиденную ошибку
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<math.h> int main() { int a=0,b=0; int sum,diff,mult,R; float div; char c,ch; do { printf("\n\n\tENTER THE FIRST operand "); scanf("%d",&a); //takes value for a for eg 7 printf("\n\n\tENTER THE SECOND operand "); scanf("%d",&b);//takes value for b for eg 4 printf("\t\n\n_______________________________"); printf("\t | ENTER THE DESIRED OPERATOR |"); printf("\t_______________________________"); printf("\n\n \t\tFOR SUMMATION PRESS + \n\n \t\tFOR DIFFERENCE PRESS - \n\n \t\tFOR PRODUCT PRESS * \n\n \t\tFOR DIVISION PRESS / \n\n \t\tTO FIND REMAINDER ONLY PRESS %% \n\n \t\tPRESS 0 TO EXIT\n\n"); scanf("%s",&c); printf("\t\n\n OPERATION TO BE PERFORMED IS '%c' PRESS ANY KEY TO CONTINUE",c); getch(); if(c=='+'||c=='-'||c=='*'||c=='/'||c=='%'||c=='0') { printf("\n\n |RESULTS|"); if(c=='-') { diff=a-b; printf("\n\nDIFFERENCE OF %d AND %d IS : %d \n\n",a,b,diff);// here it should give output as 7-4=3 but it gives 7-0=7 . why is it so getch(); } else if(c=='+') { sum=a+b; printf("\n\n\tSUMMATION OF %d AND %d IS : %d \n\n",a,b,sum); getch(); } else if(c=='*') { mult=a*b; printf("\n\n\tPORDUCT OF %d AND %d IS : %d \n\n",a,b,mult); getch(); } else if(c=='/') { div=a/(float)b; printf("\n\n\tDIVISION OF %d AND %d IS : %f \n\n",a,b,div); getch(); } else if(c=='%') { R=a%b; printf("\n\n\tREMAINDER WHEN %d IS DIVIDED BY %d IS : %d \n\n",a,b,R); getch(); } } else { printf("\n\n\n\t\t\t INVALID OPERATOR ENTER CORRECT OPERATOR "); getch(); } }while(c!= '0'); return 0; }
Что я уже пробовал:
я попытался инициализировать значения в начале, то есть int a=7, b=4;
делая это, он дает правильную вещь, но когда мы используем scanf для получения входных данных от пользователя, он не работает
Richard MacCutchan
Для меня это прекрасно работает, как только я удалил все эти избыточные вызовы. getch()
.
dawar budroo
я попробовал это сделать, но все равно wn я ввожу входы для a и b, это приводит b к нулю на выходе
#include< stdio.h>
#включить & lt;conio. h>
#include<stdlib.h>
#include< math. h>
главный()
{
int a=0, b=0;
инт сумма;
чар с;
printf ("\n\n\tENTER первый операнд ");
scanf ("%d",& a);
printf ("\n\n\tENTER второй операнд ");
scanf ("%d",& b);
printf ("\n\n \t\TFOR SUMMATION PRESS + ");
scanf ("%s",& c);
если (c=='+')
{
printf ("\n\n|результаты / ");
сумма=a+b;
е("\п\п\tSUMMATION В %D и %D : %Д \П\П"А,Б,Сум);
геч();
}
ещё {
printf ("\n\n\n\t\t недопустимый оператор введите правильный оператор ");
геч();
}
}
dawar budroo
Введите первый операнд 7
Введите второй операнд 8
ДЛЯ СУММИРОВАНИЯ НАЖМИТЕ + +
|РЕЗУЛЬТАТЫ|
СУММИРОВАНИЕ 7 И 0 РАВНО: 7
я получаю это в качестве вывода