Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Ульяниус
1 / 1 / 0
Регистрация: 15.08.2013
Сообщений: 132

Не считает произведение разных типов данных

15.04.2014, 08:31. Показов 2747. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не могу разобраться, почему программа не хочет считать произведение.
Вот часть кода:
C++ (Qt)
1
2
3
4
for (i=0;i<N;i++) 
 {
  p[i]=1.0*ws[i]/N;
 }
где p[i]-динамический массив типа double
ws[i] массив типа long
N -переменная типа long.
Я уже и так и этак переписывала этот код, и дополнительные переменные добавляла, но после i=2 p[i]=0.0 и хоть бейся головой об стенку . Хотя массив ws{1,1,1,1,1,1,1,1,1,2,2,2}, N=12.

В целом рабочий код я приведу ниже, комментарии на русском, в компиляторе читаемы, а при переносе в блокнот и в ворд нечитаемы, поэтому прошу не ругаться, все комментарии переписывать, это с ума сойти, прошу лишь загрузить в компилятор, чтобы проверить, что код реально рабочий, и то может и не понадобится код вовсе, а знающим людям итак будет понятно в чем причина. Пробовала воспользоваться командами xxx_cast<type_to>, но в учебном компиляторе почему то отказывается подключаться библиотека iostream .
C++ (Qt)
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
173
174
175
176
177
178
179
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
 
#define n 69 //Є®«ЁзҐбвў® бЁ¬ў®«®ў ў **Ј«Ё©бЄ®¬ *«д*ўЁвҐ ЎҐ§ гзҐв* ॣЁбва* c 32 Ї® 127 Є®¤ бЁ¬ў®«*  в*Ў«Ёжл ASCII
 
void swap (long *w, char *CHAR, long i, long j) //®Ў¬Ґ* н«Ґ¬Ґ*в®ў ¬*ббЁў*
 {
  long t; char T;
  t=w[i];
  w[i]=w[j];
  w[j]=t;
  T=CHAR[i];
  CHAR[i]=CHAR[j];
  CHAR[j]=T;
 }
 
void shake (long *x, char *CHAR) //¤«п гЇ®а冷зҐ*Ёп ¬*ббЁў* ўҐа®пв*®б⥩ Ї® ў®§а*бв**Ёо ЁбЇ®«м§гҐ¬ 襩ЄҐа*го б®авЁа®ўЄг
  {
   long L,R,N,S,j,i;
   L=0;  //«Ґў*п Ја**Ёж* ¬*ббЁў*
   R=n-1;  //Їа*ў*п Ја**Ёж* ¬*ббЁў*
   N=n-1;    //Є®«ЁзҐбвў® н«Ґ¬Ґ*в®ў ¬*ббЁў* (*㬥а*жЁп б 0)
   while (L<R)
   {
    for(j=R; j>L; --j)  //Їа®е®¤ бЇа*ў* **«Ґў®
    {
     if (x[j]<x[j-1])
     {
      swap(x,CHAR,j,j-1);
      N=j;
     }
    }
    L=N;
     for (j=L; j<R; ++j)  //Їа®е®¤ б«Ґў* **Їа*ў®
     {
      if (x[j]>x[j+1])
      {
       swap(x,CHAR,j,j+1);
       N=j;
      }
     }
     R=N;
   }
   for (i=0,S=1;i<n-2;++i)
   {
   if (x[i]>x[i+1])
     S++;
   }
  if (S>1)
   {
    printf("\n ЋиЁЎЄ*, ¬*ббЁў *Ґ ®вб®авЁа®ў**, Є®«ЁзҐбвў® бҐаЁ© Ў®«миҐ 1 \n");
    getch();
   }
  }
 
 
 
 
void main()
{
 FILE  *f;
 char  key, ch,
    fname[50], //¬*ббЁў ¤«п еа**Ґ*Ёп Ё¬Ґ*Ё д*©«*
    CHAR[n],  //¬*ббЁў ўбҐе бЁ¬ў®«®ў **Ј«Ё©бЄ®Ј® *«д*ўЁв*
    **C,//¬*ваЁж* ¤«п еа**Ґ*Ёп н«Ґ¬Ґ*в*а*ле Є®¤®ў
    *CHAR_S; //¬*ббЁў ¤«п еа**Ґ*Ёп бЁ¬ў®«®ў ўбваҐз*ойЁебп ў д*©«Ґ
 long  i,j,m,N, //ЇҐаҐ¬Ґ**лҐ бзҐвзЁЄЁ
    w[n], //з*бв®вл Ї®пў«Ґ*Ёп бЁ¬ў®«®ў ў ⥪бвҐ
    *ws,//®вб®авЁа®ў***л© ¬*ббЁў з*бв®в
    *L; //¬*ббЁў ¤«Ё** Є®¤®ўле б«®ў
 double *p,//¬*ббЁў ўҐа®пв*®б⥩ Ї®пў«Ґ*Ёп бЁ¬ў®«* ў ¤***®¬ ⥪бвҐ
    Hmax=0.0, //¬*ЄбЁ¬*«м**п н*ва®ЇЁп ⥪бв*
    H=0.0,//н*ва®ЇЁп ?Ґ**®**
    s;//Є®*ва®«м Їа*ўЁ«м*®бвЁ а*бзҐв* ¬*ббЁў* ўҐа®пв*®б⥩
 memset(CHAR,0 ,sizeof(CHAR));
 for(i=0;i<=32;i++)//§*Ї®«*Ґ*ЁҐ ¬*ббЁў* Є®¤*¬Ё бЁ¬ў®«®ў б®Ј«*б*® в*Ў«ЁжҐ ASCII ЎҐ§ гзҐв* ॣЁбва*
 {
  CHAR[i]=32+i;
 }
 for(i=33;i<n;i++)
 {
  CHAR[i]=58+i;
 }
 
 do
 {
  clrscr();
  m=0;  //§**зҐ*Ёп ®Ў*г«повбп ¤«п ЁбЄ«озҐ*Ёп ®иЁЎ®Є ЇаЁ ®вЄалвЁЁ ¤агЈ®Ј® д*©«*
  N=0; //Є®«ЁзҐбвў® бЁ¬ў®«®ў ў ⥪бвҐ
  memset(w,0.0,sizeof(w));
  memset(fname,0,sizeof(fname));
  printf ("\n ‚ўҐ¤ЁвҐ **Ё¬Ґ*®ў**ЁҐ д*©«* Ё Їгвм Є *Ґ¬г. \n");
  fgets(fname,sizeof(fname),stdin);
  m=strlen(fname);
  fname[m-1]=0;
  f=fopen(fname,"rt") ;
  if (f==NULL)
  {
   printf("\n ЋиЁЎЄ* ®вЄалвЁп д*©«*! \n");
   getch();
   exit(0);
  }
  while(!feof(f))
  {
   ch=getc(f);    //бзЁвлў**ЁҐ бЁ¬ў®«®ў
   if((ch>=65)&&(ch<=90)) //Ґб«Ё §*Ј«*ў**п ЎгЄў* в® ЁЈ*®аЁа㥬 ॣЁбва
    i=ch-26;
   else
   {
    for (j=0;j<n;j++)
     if (ch==CHAR[j])
     {
      i=j;
      break;
     }
   }
   w[i]+=1;
 }
 
 shake(w,CHAR);//б®авЁа®ўЄ* ¬*ббЁў* з*бв®в
 
 for (i=0; i<n; i++)
 {
  if (w[i]!=0)
   N++;
 }
 
 ws=(long *)malloc(N*sizeof(long));
 if (ws==NULL)
 {
  puts("Њ*ббЁў ws *Ґ б®§¤**!");
  getch();
  return;
 }
 
 CHAR_S=(char *)malloc(N*sizeof(char));
 if (CHAR_S==NULL)
 {
  puts("Њ*ббЁў CHAR_S *Ґ б®§¤**!");
  getch();
  return;
 }
 j=0;
 for (i=n-N; i<n; i++)//Є®ЇЁа®ў**ЁҐ бЁ¬ў®«®ў б з*бв®в®© Ї®п«ўҐ*Ёп >0 ў ¤Ё**¬ЁзҐбЄЁ© ¬*ббЁў
 {
   ws[j]=w[i];
   CHAR_S[j]=CHAR[i];
   j++;
 }
 
 p=(double *)malloc(N*sizeof(double)) ;
 if (p==NULL)
 {
  puts("Њ*ббЁў p *Ґ б®§¤**!");
  getch();
  return;
 }
 
 for (i=0;i<N;i++) //а*ббзҐв н*ва®ЇЁЁ д*©«*
 {
  p[i]=1.0*ws[i]/N;//§*Ї®«*Ґ*ЁҐ ¬*ббЁў* ўҐа®пв*®б⥩ Ї®пў«Ґ*Ёп бЁ¬ў®«®ў/
 }
 
 //®бў®Ў®¦¤Ґ*ЁҐ Ї*¬пвЁ ®в б®§¤***ле ¤Ё**¬ЁзҐбЄЁе ¬*ббЁў®ў
 for (i=0;i<N;i++)
 
 free(p);
 free(ws);
 
 getch();
 fclose(f);
 puts ("\n ЋвЄалвм ¤агЈ®© д*©«? (ЌҐв=Esc)");
 key=getch();
 }
 while (key!=27);//ESC
}
Текстовый файл приложен
Вложения
Тип файла: txt NEW.TXT (14 байт, 11 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.04.2014, 08:31
Ответы с готовыми решениями:

Запрос считает итоговую сумму по договору выполненных разных услуг, но повторяющиеся не считает
Есть запрос procedure TForm7.Button2Click(Sender: TObject); var i:integer; begin ...

Запись данных разных типов
Здравствуйте! Столкнулся вот с такой дилеммой, не принципиально, но все же: есть форма ввода информации, подразумевающая поле с типом...

переножение разных типов данных
Можно ли в запросе с помощью построителя задать формулу и перемножить разные типы данных. например денежный и числовой?

25
 Аватар для Ульяниус
1 / 1 / 0
Регистрация: 15.08.2013
Сообщений: 132
29.04.2014, 22:01  [ТС]
Студворк — интернет-сервис помощи студентам
Этот проект работает, а как вы мой код русифицировали так ловко?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.04.2014, 22:09
Для руссификации в Code Blocks (если с mingw), прописать, в настройках компилятора (Compiler settings - Other options):
-finput-charset=CP1251 -fexec-charset=CP866. Тогда в коде можно ничего дополнительно не писать.
0
29.04.2014, 22:17

Не по теме:

Цитата Сообщение от Ульяниус Посмотреть сообщение
Этот проект работает, а как вы мой код русифицировали так ловко?
В смысле из крякозябликов, получил нормальный текст? :)
Ну так очень просто - видно же, что оригинальная кодировка не потеряна. Раз у вас DOS, значит это была CP866. Дальше нужно только сохранить в файл и перекодировать :)

0
 Аватар для Ульяниус
1 / 1 / 0
Регистрация: 15.08.2013
Сообщений: 132
29.04.2014, 22:33  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Ну так очень просто - видно же, что оригинальная кодировка не потеряна. Раз у вас DOS, значит это была CP866. Дальше нужно только сохранить в файл и перекодировать
А можно поподробнее ? В какой файл сохранить и как перекодировать?
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
29.04.2014, 22:52
Цитата Сообщение от Ульяниус Посмотреть сообщение
В какой файл сохранить и как перекодировать?
В текстовый - filecp866.txt. А потом так:
iconv -f cp866 -t cp1251 filecp866.txt -o filecp1251.txt
В Linux это сразу работает. Под Win должен быть установлен MSYS или Cygwin c iconv.
0
 Аватар для Ульяниус
1 / 1 / 0
Регистрация: 15.08.2013
Сообщений: 132
29.04.2014, 23:03  [ТС]
я обязательно с этим разберусь потом, когда появится больше времени, ща надо в коде плутать уже другом, что-то все как то медленно идет , или я медленная, или самостоятельно изучать все сложно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2014, 23:03

Передача разных типов данных
Комрады, прошу совета, в ближайшее время предстоит сделать одно приложение, суть вот в чем... Допустим есть следующие структуры: ...

Хранение данных разных типов
Уважаемые программисты помогите мне понять тему хранение типов данных. 1)например тип int хранит в себе целые числа.область...

Массив из разных типов данных
Всем привет ! Помогите с таким вопросом: Возникла необходимость создать массив из записей с разными типами полей. Я попробовал...

Получение разных типов данных
Суть задачи такова: в функцию передаётся неизвестное кол-во переменных разного типа(а именно: строка, символ, Boolean переменная, целое...

Считывание из Edit разных типов данных
Подскажите пожалуйста, как из edit считать запись в разных типах данных, допустим в edit введено выражение (3+sin(Pi)*cos(0,5)) и надо...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru