Что за ошибка: Jump to case label? - C (СИ)
Формулировка задачи:
jump to case label
что за ошибка?
Решение задачи: «Что за ошибка: Jump to case label?»
textual
Листинг программы
#include <cstdlib>
#include <iostream>
#include <stdio.h>
int vvod(int **l);
int sum(int *m, int n);
int asum(int *m, int n);
using namespace std;
int main()
{
int boq;
do{
system("cls");
printf("\t\t\t********MENU*********\n\n");
printf("1. Mech\n");
printf("2. oqing \n");
printf("3. bilmiman torisi \n");
printf("4. amizi ying \n");
printf("\n\n\nzdelayte vash vibor:\t");
int mech;
scanf("%d", &mech);
switch (mech){
case 1:
{
for (int i = 0; i < 10; i++)
{
printf("\t\t\tumniy mol\n");
}
break;
}
case 2:
{
int *x, *y, *z;
printf("zapolnite massiv X \n");
int Nx = vvod(&x);
int sumx = sum(x, Nx);
int asumx = asum(x, Nx);
printf("zapolnite massiv Y \n");
int Ny = vvod(&y);
int sumy = sum(y, Ny);
int asumy = asum(y, Ny);
printf("zapolnite massiv Z \n");
int Nz = vvod(&z);
int sumz = sum(z, Nz);
int asumz = asum(z, Nz);
printf("\t\tsumma polojitelnix chisel\n");
printf("SumX = %d\nSumY = %d\nSumZ = %d\n\n", sumx, sumy, sumz);
printf("\t\tsumma otricatelnix chisel\n");
printf("aSumX = %d\naSumY = %d\naSumZ = %d\n", asumx, asumy, asumz);
break;
}
case 3:
{
printf("qanday\n");
break;
}
default:
printf("net takoy operacii\n");
break;
}
printf("xotite eshe raz najmite 1:\n");
scanf("%d", &boq);
} while (boq == 1);
system("PAUSE");
puts("konets");
return 0;
}
////////////////////////////////////////////////////
int vvod(int **l) {
int n;
printf("\t\t ukajite razmer massiva: ");
scanf("%d", &n);
int *m = new int[n];
for (int i = 0; i < n; i++) {
printf("element%d: ", i + 1);
scanf("%d", &(m[i]));
}
*l = m;
return n;
}
int sum(int *m, int n) {
int sum = 0;
for (int i = 0; i < n; i++)
if (m[i] > 0)
sum += m[i];
return sum;
}
int asum(int *m, int n) {
int sum = 0;
for (int i = 0; i < n; i++)
if (m[i] < 0)
sum += m[i];
return sum;
}
Объяснение кода листинга программы
- Переменная
boqобъявлена в функции main() и используется в цикле do-while для контроля выхода из программы. - Функция vvod() используется для ввода размера массива и самого массива. Она возвращает размер массива и сохраняет указатель на массив в переменной типа указатель на указатель int.
- Функция sum() используется для вычисления суммы положительных чисел в массиве.
- Функция asum() используется для вычисления суммы отрицательных чисел в массиве.
- В функции main() есть три случая в конструкции switch:
- При выборе первого случая (1) выводится сообщение
umniy mol10 раз. - При выборе второго случая (2) выполняются следующие действия:
- Ввод размера массива X, Y и Z с помощью функции vvod().
- Вычисление суммы и суммы отрицательных чисел для каждого массива.
- Вывод результатов на экран.
- При выборе третьего случая (3) выводится сообщение
qanday. - При выборе четвертого случая (4) выводится сообщение
net takoy operacii. - При выборе пятого случая (5) выводится сообщение
konets.
- При выборе первого случая (1) выводится сообщение