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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Владимир_ВМ
128 / 109 / 24
Регистрация: 16.05.2011
Сообщений: 340
#1

В создании нового массива ошибка. Подскажите. - C++

14.12.2011, 01:53. Просмотров 237. Ответов 0
Метки нет (Все метки)

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#include<conio.h>
#include<stdio.h>
#include<alloc.h>
#include<stdlib.h>
#include<string.h>
#pragma hdrstop
#pragma argsused
using namespace std;
struct F
  {char name[20];
   char ForM[20];
   char Vladelec[20];
   char Product[20];
   char Partner[20];
  };
struct F *bd;
int n;
void sort(struct F*);
void new_mas();
void vyvod(struct F*);
void Vrag();
int main(int argc, char* argv[])
{int i,pr;
 printf("Vvedite chislo zapisei :");
 scanf("%d",&n);
 bd=(struct F*)calloc(n,sizeof(struct F));
 for (i=0;i<n;i++)
   {printf("zapis:%d\n",i+1);
    printf("Predpriyatie        :");
    scanf("%s",bd[i].name);
    printf("Forma sobstvennosti :");
    scanf("%s",bd[i].ForM);
    printf("Vladelec:");
    scanf("%s",bd[i].Vladelec);
    printf("Produkciya          :");
    scanf("%s",bd[i].Product);
    printf("Partnery            :");
    scanf("%s",bd[i].Partner);
    printf("-----------------------------------------\n");
   }
do
  {
   clrscr();
   printf("Menu:\n");
   printf("1-Sortirovat dannye po familii vladelca.\n");
   printf("2-Novyi massiv predpriyatyi.\n");
   printf("3-Konkurenty.\n");
   printf("Vvedite nomer menu>>>");
   scanf("%d",&pr);
   switch(pr)
     {case 1:clrscr();
             sort(bd);
             printf("Masiv sortirovan!\n");
             system("Pause");
             vyvod(bd);
             system("Pause");
             break;
      case 2:clrscr();
             printf("Formorovanie massiva.\n");
             new_mas();
             printf("\n");
             system("Pause");
             vyvod(bd);
             system("Pause");
             break;
      case 3:clrscr();
             printf("Konkurenty.\n");
             Vrag();
     }
  }
while (pr<4);
        return 0;
}
 
void new_mas()
{int i,k,j,m; char forma[20];
 struct New
 {char name[20];
  char Vladelec[20];
  char Product[20];
  char Partner[20];
  }*z;
printf("Vvedite formu sobstvennosty:");
scanf("%s",&forma);
 for (i=0,k=-1;i<n;i++)
   if (strcmpi(bd[i].ForM,forma)==0)
     k++;
m=k;
 if (k!=-1)
 {
 z=(struct New*)calloc(k,sizeof(struct New));
 for (i=0;k>0;i++);
   if (strcmpi(bd[i].ForM,forma)==0)
   {
     for (j=0;bd[i].name[j]!='\0';j++)
       z[k].name[j]=bd[i].name[j];
       z[k].name[j]='\0';
     for (j=0;bd[i].Vladelec[j]!='\0';j++)
       z[k].Vladelec[j]=bd[i].Vladelec[j];
       z[k].Vladelec[j]='\0';
     for (j=0;bd[i].Product[j]!='\0';j++)
       z[k].Product[j]=bd[i].Product[j];
       z[k].Product[j]='\0';
      for (j=0;bd[i].Partner[j]!='\0';j++)
       z[k].Partner[j]=bd[i].Partner[j];
       z[k].Partner[j]='\0';
     k--;
   }
 
 for (i=0;m>0;i++)
   {
    printf("zapis:%d\n",i+1);
    printf("Predpriyatie        :");
    printf("%s",z[i].name);
    printf("\nVladelec            :");
    printf("%s",z[i].Vladelec);
    printf("\nProdukciya          :");
    printf("%s",z[i].Product);
    printf("\nPartnery            :");
    printf("%s",z[i].Partner);
    printf("\n-----------------------------------------\n");
    m--;
   }
 }
}
void vyvod(struct F*)
{int i;
 for (i=0;i<n;i++)
 {
    printf("zapis:%d\n",i+1);
    printf("Predpriyatie        :");
    printf("%s",bd[i].name);
    printf("\nForma sobstvennosti :");
    printf("%s",bd[i].ForM);
    printf("\nVladelec            :");
    printf("%s",bd[i].Vladelec);
    printf("\nProdukciya          :");
    printf("%s",bd[i].Product);
    printf("\nPartnery            :");
    printf("%s",bd[i].Partner);
    printf("\n-----------------------------------------\n");
 }
}
void sort (struct F*)
{int i,j;
 struct F s;
 for(i=0;i<n-1;i++)
   for(j=i+1;j<n;j++)
     if (strcmp(bd[i].Vladelec,bd[j].Vladelec)>0)
       {s=bd[i];bd[i]=bd[j]; bd[j]=s;}
}
void Vrag()
{int i,j; char vl[20], vd[20];
 printf("Vvedite vladelca i vid produkcii");
 scanf("%s%s",&vl,&vd);
  for (i=0;i<n;i++)
    if ((strcmp(bd[i].Partner,vl)!=0)&&(strcmpi(bd[i].ForM,vd)==0))
      {
      printf("Predpriyatie        :");
      printf("%s",bd[j].name);
      printf("\nForma sobstvennosti :");
      printf("%s",bd[j].ForM);
      printf("\nVladelec            :");
      printf("%s",bd[j].Vladelec);
      printf("\nProdukciya          :");
      printf("%s",bd[j].Product);
      printf("\nPartnery            :");
      printf("%s",bd[j].Partner);
      printf("\n-----------------------------------------\n");
     }
 getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 01:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В создании нового массива ошибка. Подскажите. (C++):

Ошибка в создании нового массива - C++
все считает, но новый массив создается со значением int -85........ и так далее все элементы получились равными Само задание Составить...

Ошибка при создании нового массива - C++
Задача: Дан одномерный массив чисел, среди элементов которого есть одинаковые. Создать новый массив из различных элементов исходного...

Подскажите, как сделать сдвиг массива вправо для вставки нового элемента? - C++
// После каждого четного числа добавить число 0. const int n=10; int ar,k=n,t; for(int i=0;i&lt;n;i++){ ar=rand()%10+1; ...

Ошибка в создании массива объектов - C++
Есть класс Circle, в котором определены переменные для координат Х и У и радиуса окружности (здесь всё правильно, вроде бы). При компиляции...

ошибка при создании массива - C++
задача такая, методом перебора найти первое простое десятизначное значение дробной части е (эпсилон). для простоты решил не вычислять...

Ошибка при создании массива - C++
Не пойму в чем ошибка... Подскажите пожалуйста. void CreatMas(int *m) { int st,stlb; scanf(&quot;%d&quot;,&amp;st); scanf(&quot;%d&quot;,&amp;stlb); ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2011, 01:53
Привет! Вот еще темы с ответами:

Ошибка при создании динамического массива. - C++
Все доброго времени. Начал создавать одномерный массив, потом решил его преобразовать в динамический одномерный. Понимаю что...

Ошибка при создании динамического двумерного массива - C++
Ткните пальцем, что не так. Только учусь, делаю лабы, камнями не забрасывайте. Смотрел шаблоны здесь и в других местах, но есть вопрос. ...

Ошибка при создании массива большого размера - C++
Массив int m; выдает ошибку Винды в чем дела? с 5 9-ми все нормально Добавлено через 19 минут точнее выше 519999 выдает ошибку при...

Ошибка при создании двумерного массива из объектов производных классов - C++
Доброго времени суток. Для начала обрисую ситуацию. Мне нужно динамически создать двумерный массив из трех классов, для этого я создал...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru