Форум программистов, компьютерный форум CyberForum.ru

Ошибка в коде - C++

Восстановить пароль Регистрация
 
Ukrainis
2 / 2 / 0
Регистрация: 26.10.2013
Сообщений: 40
29.03.2014, 04:05     Ошибка в коде #1
Всем добрый вечер.

Преподаватель дала код, но у меня он по какой-то причине не компилируется. Часть ошибок смог решить, а ту, которая осталась, решить не могу. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include<iostream>
#include<conio.h>
#include<cstdio>
#include<cstring>
#include <cstdlib>
using namespace std;
int main()
{//Объявляем структуру
struct Stuff{//сотрудник
char name[20];//имя
char surname[20];//фамилия
int departmentID;//номер отдела
float salary;//зарплата
};
int n;
printf("Enter number of stuffs>"); scanf("%d",&n);
//Объявляем массив структур
Stuff * stuffs=new Stuff[n];
//Заполняем массив структур
for (int i=0;i<n;i++)
{
printf("Enter information about %d stuff:\n\tName >",i+1);
scanf("%s",stuffs[i].name);
printf("\tSurname >");scanf("%s",stuffs[i].surname);
printf("\tDepartment ID >");scanf("%d",&stuffs[i].departmentID);
printf("\tSalary >");scanf("%f",&stuffs[i].salary);
}
printf("Enter any key to continue\n");
int c;//Выбранный пункт меню
//Запускаем цикл
do
{
system("cls"); //Очищаем экран
printf("Choice menu:\n\t1. View stuffs\n\t2.Search\n\t3.Maximum salary\n\t4.Sort\n\t5.Exit\nEnter your choice >");
scanf("%d",&c);
//Работа с меню
switch (c)
{//Вывод информации из массива
case 1: for (int i=0;i<n;i++){
printf("--------%d--------\n",i+1);
printf("Name: %s\nSurname: %s\nDepartment ID: %d\nSalary: %f\n",stuffs[i].name,stuffs[i].surname,stuffs[i].departmentID,stuffs[i].salary);
}
getch();
break;
//Поиск по фамилии
case 2: {char * s=new char[]; printf("Enter surname >"); scanf("%s",s);
bool flag=false;//Флаг, обозначающий нашли ли мы искомое значение
for (int i=0;i<n;i++)
//сравниваем строки
if(strcmp(stuffs[i].surname,s)==0){
printf("Name: %s\nSurname: %s\nDepartment ID: %d\nSalary: %f\n",stuffs[i].name,stuffs[i].surname,stuffs[i].departmentID,stuffs[i].salary);
flag=true;//если нашли, то thrue
}
/*если flag остался равным false, то не нашли */
if(!flag) printf("Not found\n");
getch();
break;}
//Поиск работника с максимально зарплатой
case 3: {float max=0; int d=-1;
for(int i=0;i<n;i++)
if (stuffs[i].salary>max)
{
max=stuffs[i].salary;
d=i;
}
printf("Maximum salary has Name: %s\nSurname: %s\nDepartment ID: %d\nSalary: %f\n",stuffs[d].name,stuffs[d].surname,stuffs[d].departmentID,stuffs[d].salary);
getch();
break;}
//Сортировка информации о работниках по зарплате алгоритмом "пузырек"
case 4: {for (int i=0;i<n-1;i++)
for(int j=n-1;j>i;j--)
if (stuffs[j].salary<stuffs[j-1].salary)
{
Stuff temp=stuffs[j];
stuffs[j]=stuffs[j-1];
stuffs[j-1]=temp;
}
for (int i=0;i<n;i++){
printf("--------%d--------\n",i+1);
printf("Name: %s\nSurname: %s\nDepartment ID: %d\nSalary: %f\n",stuffs[i].name,stuffs[i].surname,stuffs[i].departmentID,stuffs[i].salary);
}
getch();
break;
}
}
}
//Пока выбранный пункт меню <5 продолжаем работу
while (c<5);
printf("Bye!");
getch();
return 0;
}
Такую ошибку выдает Dev++:
46 28 [Error] expected primary-expression before ']' token
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 04:05     Ошибка в коде
Посмотрите здесь:

Ошибка в коде.. C++
Ошибка в коде. C++
Ошибка в коде! C++
C++ Ошибка в коде
Ошибка в коде C++
C++ Ошибка в коде
C++ Ошибка в коде
Ошибка в коде C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
29.03.2014, 04:26     Ошибка в коде #2
46 строчка, по моему:
C++
1
char *s = new char[];
правильно будет просто
C++
1
char *s = new char;
либо в квадратных скобках сразу укажи размер
IrineK
Заблокирован
29.03.2014, 05:55     Ошибка в коде #3
char *s = new char[20];
вам столько положено на фамилию сотрудника.

Цитата Сообщение от Ukrainis Посмотреть сообщение
Преподаватель дала код
На все new ни одного delete. Структурирование кода - ниже плинтуса.
scanf при заборе строки
while (c<5) тоже вызывает некоторые эмоции.

И о языках человеческих. Какое отношение Stuff имеет к сотруднику?
staff ближе, но так называют весь персонал, а не отдельных трудящихся, для которых в языке бусурманском припасено Employee.

Это на беглый взгляд. Примите соболезнования, Ukrainis
Yandex
Объявления
29.03.2014, 05:55     Ошибка в коде
Ответ Создать тему
Опции темы

Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru