Stack around the variable was corrupted - C (СИ) (77900)
Формулировка задачи:
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double c,x,y,f;
char k;
printf("Введите x= ");
scanf("%lf",&x);
printf("Введите y= ");
scanf("%lf",&y);
printf("\nС какой функцией выполнять лабораторнуюработу?\n1.\tf(x)=sh(x)\n2.\tf(x)=x^2\n3.\tf(x)=exp(x)\n\nВведите ваш выбор: ");
scanf("%s",&k);
switch(k)
{
case '1':
f=sinh(x);
break;
case '2':
f=pow(x,2);
break;
case '3':
f=exp(x);
break;
default:
printf("\nНе верно выбран пункт меню\n\n");
break;
}
if((x-y)==0)
printf("\n\nВычисления по первой ветви.\nРезультат вычислений c=%.4lf\n",c=pow(f,2)+pow(y,1/3.)+sin(y));
else
{
if((x-y)>0)
printf("\n\nВычисления по второй ветви.\nРезультат вычислений с=%.4lf\n",c=pow(f-y,2)+log(x));
else
printf("\n\nВычисления по третьей ветви.\nРезультат вычислений с=%.4lf\n",c=pow(y-f,2)+tan(y));
}
}Решение задачи: «Stack around the variable was corrupted»
textual
Листинг программы
scanf("%s",&k);
// к имеет тип char, а вы пытаетесь ее считать как строку.
// надо заменить на
scanf("%с",&k);