Не работает switch - C (СИ) (79068)
Формулировка задачи:
здравствуйте!
почему то не работает свитч когда запускаю программу.помогите найти ошибку!заранее благодарен.
код программы:
кода запускаю..ввожу цифру (например "1") жму ентер,он пишет нажмите любую клав..........и вылетает.
// 123.cpp : Defines the entry point for the console application. // #include <StdAfx.h> #include <stdio.h> #include <math.h> #include <stdlib.h> void zadanie1 () { int x,y; printf("vvedite x,y:"); scanf("%d%d",&x,&y); if ((x>0) && (y>0)) printf("pervaya chetvert"); if ((x<0) && (y>0)) printf("vtoray chetvert"); if ((x<0) && (y<0)) printf("tretaya chetvert "); if ((x>0) && (y<0)) printf("chetvertaya chetvert "); if ((x=0) && (y=0)) printf("nachalo koordinat"); if (x=0) printf("Error"); if (y=0) printf("Error"); system("pause"); } void zadanie2 () { int a,b,c; double d,x1,x2; printf("vvedite peremennie a,b,c:"); scanf("%d%d%d",&a,&b,&c); d=b*b- 4 *a*c; if (d<0) printf("Error"); else { d=sqrt(d); x1= (-b+sqrt(d))/(2*a); x2= (-b-sqrt(d))/(2*a); if (x1==x2)printf("x1=%f\n",x1); else printf("x1=%f\nx2=%f\n",x1,x2);} system("pause"); } void zadanie3 () { int i,n,s; printf("vvedite chislo n factorial:"); scanf("%d",&n); for (s=1,i=1;i<=n;i++); s=s*i; printf("s=%d\n",s); system ("pause"); } void zadanie4 () { int n,a,i,s; printf("vvedite chislo fibonachi n:"); scanf("%d",&n); for (a=1,i=0;i<=n;a=i,i++); s=a+i; printf("s=%d",s); system ("pause"); return; } void zadanie5 () {int i,x; double y; printf ("vvedite znachenie peremennoi x :"); scanf ( "%d",&x); for (y=0,i=1; i<20; ++i); y=i*x+i+y; printf("y=%f",y); system ("pause"); } void zadanie6 () { int i,x,n; double y; printf("vvedite znacheniya peremennih x,n:"); scanf("%d%d",&x,&n); for (y=n/(x+1),i=1;i<n;i++); y=y+(n-i)/(x+i+1); printf("y=%f",y); system ("pause"); } void zadanie7 () { int x,x1,x2,s,y,min,max,m1,m2; printf("enter a segment [x1,x2]:"); scanf("%d%d",&x1,&x2); printf("vvedite shag:"); scanf("%d",&s); m1=x1; m2=x2; if (x1>0) {min=x1*x1*x1-9*x1; max=x1*x1*x1-9*x1;} else {min=x1*x1*x1*x1+2*x1*x1*x1-9*x1*x1-3*x1+6; max=x1*x1*x1*x1+2*x1*x1*x1-9*x1*x1-3*x1+6;} x=x1; if (x>0) y=x*x*x-9*x; else y=x*x*x*x+2*x*x*x-9*x*x-3*x+6; if (y>max) {max=y; m2=x;} printf("max=%d,x=%d)\n",max,x); printf("min=%d,m1=%d)\n",min,m1); system("pause"); } void print_menu() { printf("1. kvadrant\n"); printf("2. vichislenie kornei uravneniya\n"); printf("3. vichislenie faktoriala\n"); printf("4. vichislenie chisel fibonachi\n"); printf("5. vichislenie znachenie funkcii 1\n"); printf("6. vichislenie znachenie funkcii 2\n"); printf("7. znachenie funkcii na otrezke\n"); printf("0. exit\n"); } int main() { int c; print_menu(); printf("vvedite nomer\n"); scanf("%d", &c); switch(c) { case 1:zadanie1; break; case 2:zadanie2; break; case 3:zadanie3; break; case 4:zadanie4; break; case 5:zadanie5; break; case 6:zadanie6; break; case 7:zadanie7; break; } system ("pause"); return 0; }
Решение задачи: «Не работает switch»
textual
Листинг программы
case 1:zadanie1(); break;
Объяснение кода листинга программы
- В данном коде используется конструкция switch, которая предназначена для выбора одного из нескольких блоков кода для выполнения в зависимости от значения переменной.
- Переменная, которая используется в конструкции switch, называется
zadanie
. - Значение переменной
zadanie
должно быть целочисленным типом данных. - Каждый case соответствует определенному значению переменной
zadanie
. - В каждом case определен свой блок кода, который будет выполнен, если значение переменной
zadanie
равно соответствующему case. - После каждого case идет оператор break, который предназначен для выхода из конструкции switch после выполнения соответствующего блока кода.
- Если значение переменной
zadanie
не соответствует ни одному из case, то будет выполнен блок кода по умолчанию (default). - В данном коде нет default, значит, если значение переменной
zadanie
не соответствует ни одному из case, то программа выдаст неопределенное поведение. - Если в коде есть другие переменные, они могут быть использованы внутри блоков кода каждого case, но их имена и значения не указаны в вопросе.
- Для понимания работы кода необходимо знать значения и типы данных переменных, которые используются в конструкции switch.
- В данном коде не указаны значения и типы данных переменных, поэтому невозможно точно сказать, как будет работать код.
- Если значения переменных и типы данных указаны верно, и код был написан без ошибок, то он будет работать корректно.
- Для определения, какой блок кода будет выполнен, необходимо сравнить значение переменной
zadanie
с каждым case. - Если значение переменной
zadanie
равно 1, то будет выполнен блок кода, соответствующий case 1. - Если значение переменной
zadanie
равно 2, то будет выполнен блок кода, соответствующий case 2. - И так далее, в зависимости от значения переменной
zadanie
. - Если значение переменной
zadanie
не равно ни одному из case, то будет выполнен блок кода по умолчанию (который в данном коде отсутствует). - Если в коде есть другие переменные, их значения и типы данных также необходимо учитывать при анализе кода.
- Для более точного ответа на вопрос необходимо знать больше информации о коде и его окружении.
- Код может работать корректно, если значения переменных и типы данных указаны верно, и в коде нет ошибок.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д