Программа перестала работать после интеграции меню - C (СИ)
Формулировка задачи:
Добрый вечер, при написании менюшки наткнулся на проблему, функция (кейс 1) как самостоятельная программа отлично запускалась, но при вставке её в меню начала вылетать ошибка:declaration syntax error. Пробовал с ";" после float f (float x,float y,float z), и без ";", но ошибка все так-же вылетает, подскажите пожалуйста в чем ошибка.
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
char ch;
while (ch!='5')
{
clrscr();
printf ("=====================Menu=======================");
printf ("===========[1] functiya=========================");
printf ("===========[2] 4 prov ==========================");
printf ("===========[3] 6 prov ==========================");
printf ("===========[4] Objem paralelepipeda ============");
printf ("===========[5] Vihod ===========================");
printf ("================================================");
ch=getch();
switch(ch)
{
case 1:
{
float f (float x,float y,float z)
{ //declaration syntax error
return x+pow(y,4)-z;
}
void main()
{
float a,x,k,p;
clrscr();
a=-0.9;
x=150;
k=3.14;
p=1/sqrt(f(a,x,k))+sin(f(x,a,4*pow(k,2))+pow(f(k,x,a),2));
printf ("p=%f",p);
getch ();
}
case 2:
{
clrscr();
printf ("Vvedit opir 4 prov\n");
float (a1,a2,a3,a4,x1);
scanf(%f,&a1);
scanf(%f,&a2);
scanf(%f,&a3);
scanf(%f,&a4);
x1=a1+a2+a3+a4;
printf ("opir 4 prov = %f",x1);
getch();
break;
}
case 3:
{
clrscr();
printf ("Vvedit opir 6 prov\n");
float (a1,a2,a3,a4,a5,a6,x2);
scanf(%f,&a1);
scanf(%f,&a2);
scanf(%f,&a3);
scanf(%f,&a4);
scanf(%f,&a5);
scanf(%f,&a6);
x2=a1+a2+a3+a4+a5+a6;
printf ("opir 6 prov = %f",x1);
getch();
break;
}
case 4:
{
clrscr();
printf ("Vvedite dannie paralelepipeda\n");
float (v,s,h);
scanf(%f,&s);
scanf(%f,&h);
v=s*h;
printf ("Objem =%f",v);
getch();
break;
}
default printf ("Takogo punkta nety");
}}}}
актуально(
Решение задачи: «Программа перестала работать после интеграции меню»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
//-----функция f --
float f (float x,float y,float z)
{
return x+pow(y,4.)-z;
}
// ---- функция main (точка входа в программу) ------
void main()
{
char ch;
while (ch!='5')
{
clrscr();
printf ("=====================Menu=======================");
printf ("===========[1] functiya=========================");
printf ("===========[2] 4 prov ==========================");
printf ("===========[3] 6 prov ==========================");
printf ("===========[4] Objem paralelepipeda ============");
printf ("===========[5] Vihod ===========================");
printf ("================================================");
ch=getch();
switch(ch)
{
case 1:
{
float a,x,k,p;
clrscr();
a=-0.9;
x=150;
k=3.14;
p=1/sqrt(f(a,x,k))+sin(f(x,a,4*pow(k,2))+pow(f(k,x,a),2));
printf ("p=%f",p);
getch ();
}
break;
case 2:
{
clrscr();
printf ("Vvedit opir 4 prov\n");
float a1,a2,a3,a4,x1;
scanf(%f,&a1);
scanf(%f,&a2);
scanf(%f,&a3);
scanf(%f,&a4);
x1=a1+a2+a3+a4;
printf ("opir 4 prov = %f",x1);
getch();
break;
}
case 3:
{
clrscr();
printf ("Vvedit opir 6 prov\n");
float a1,a2,a3,a4,a5,a6,x2;
scanf(%f,&a1);
scanf(%f,&a2);
scanf(%f,&a3);
scanf(%f,&a4);
scanf(%f,&a5);
scanf(%f,&a6);
x2=a1+a2+a3+a4+a5+a6;
printf ("opir 6 prov = %f",x1);
getch();
break;
}
case 4:
{
clrscr();
printf ("Vvedite dannie paralelepipeda\n");
float v,s,h;
scanf(%f,&s);
scanf(%f,&h);
v=s*h;
printf ("Objem =%f",v);
getch();
break;
}
default:
printf ("Takogo punkta nety");
}// конец switch
}// конец while
}// конец main
Объяснение кода листинга программы
- Объявлены функции
fиmain. - В функции
fесть переменныеx,y,z. - В функции
mainесть переменнаяch. - В функции
mainесть цикл while, который выполняется до тех пор, покаchне станет равным 5. - В начале цикла while выводится меню.
- Для выбора определенного пункта меню пользователю предлагается ввести соответствующую цифру.
- В зависимости от выбранного пункта меню выполняется соответствующий код.
- При выборе пункта 1, пользователю предлагается ввести значения переменных
a,x,k,p. - В случае выбора пункта 2, пользователю предлагается ввести значения переменных
a1,a2,a3,a4. - В случае выбора пункта 3, пользователю предлагается ввести значения переменных
a1,a2,a3,a4,a5,a6. - В случае выбора пункта 4, пользователю предлагается ввести значения переменных
s,h. - В конце каждого пункта меню выполняется операция
getch(), чтобы программа ждала ввода пользователя. - В случае выбора пункта 5, программа завершается.
- В конце программы есть оператор
break, который прерывает выполнение программы в случае, если введенная цифра не соответствует ни одному из пунктов меню. - В конце программы есть оператор
default, который выводит сообщение об ошибке, если введена неправильная цифра. - Переменная
vиспользуется только в случае выбора пункта 4. - Переменная
pиспользуется только в случае выбора пункта 1. - Переменная
x1используется только в случае выбора пункта 2 и пункта 3. - Переменная
x2используется только в случае выбора пункта 3. - Переменные
a1,a2,a3,a4,a5,a6используются только в случае выбора пункта 3.