С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
foto-hunter
0 / 0 / 0
Регистрация: 03.02.2014
Сообщений: 5
#1

Не верно работает код вычисления выражения - C++

03.02.2014, 12:16. Просмотров 305. Ответов 6
Метки нет (Все метки)

день добрый.
Помогите пожалуйста.
Вроде и логика правельна, но не работает так как надо.
Условие: suma= a0*a1+a1*2...an-1*an
вот мой код.
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
#include "iostream.h"
#include "windows.h"
#include "math.h"
 
char* Rus(const char* text);
void main()
{int mas[100],suma,i,k,n;
suma=0;
k=1;
cout<<Rus("Задайте довжину масиву\n");
cin>>n;
cout<<Rus("Задайте масив,який маэ N змiнних\n");
for(i=0;i<n;i++)
cin>>mas[i];
 
 
for(i=0;i<n;i++)
{suma+=mas[i]*(mas[k]);
k++;
}
cout<<Rus("Результат\n");
cout<<suma<<endl;   
}
 
char bufRus[256];
char* Rus(const char* text)
{
    CharToOem(text,bufRus);
    return bufRus;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 12:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не верно работает код вычисления выражения (C++):

не верно работает код - C++
условие задачи : Даны действительные числа c1, c2, …, cn. Найти произведение суммы чи-сел с четными индексами и суммы чисел с нечетными...

Перевести код вычисления выражения с Pascal - C++
Помогите,перевести код вычисления выражения с Pascal на C++,заранее благодарен program pr; const d = 5.3; var y:...

Перевести код вычисления выражения с Pascal - C++
var n, i, b: integer; a, y : real; begin writeln ('Введіть n'); readln (n); y:=1; a:=0; b:=n; repeat begin

Составьте блок-схему и программу(код и скриншот результата) вычисления значения выражения для данного натураль - C++
Составьте блок-схему и программу(код и скриншот результата) вычисления значения выражения для данного натурального числа N: 4+8+12+ … +4∙N.

Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include...

Верно ли я преобразовал код из Pascal в C++? - C++
паскаль var n,a,b,c,d:integer; begin readln(n); a:=n div 1000; b:=n div 100 mod 10; c:=n div 10 mod 10; d:=n mod 10; if...

6
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 14:52 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от foto-hunter Посмотреть сообщение
C++
1
2
3
4
5
6
7
k=1;
for(i=0;i<n;i++)
cin>>mas[i];
for(i=0;i<n;i++)
{suma+=mas[i]*(mas[k]);
k++;
}
k выйдет за границу массива

думаю так будет правильно
C++
1
2
3
for(i=0;i<n-1;i++)
{suma+=(mas[i]*mas[i+1]);
}
1
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 250
03.02.2014, 15:09 #3
Enotniy, правильно думаешь
1
foto-hunter
0 / 0 / 0
Регистрация: 03.02.2014
Сообщений: 5
09.02.2014, 17:21  [ТС] #4
Вот снова к Вам за советом
Дано две задачи ( выбор swith, case) +надо использовать функции пользователя!!!:
1)Зделать програму , которая переносит все отрицательные элементы массива на начало , все остальные в конец, при этом не меняя их взаимного расположения.
2)Дано массив целых чисел и число В, найти числа меньше В.
PS: я знаю что сами задачи еще не совсем правельно работают, у меня проблема с функциями пользователя.
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
#include "iostream.h"
#include "windows.h"
#include "stdlib.h"
 
void mas1(int al[],int,int);
void mas2(int dl[],int);
 
char* Rus(const char* text);
 
void main()
{ 
  int roz1,b,i;
  int roz2,j;
  int vub;
  cout<<Rus("   Виберiть задачу:\n 1)Меншi або бiльшi b елементи масиву. \n 2)Вивiд вiдэмних елементiв\n");
  cin>>vub;
  switch (vub)
  { case 1:
  {cout<<Rus("Задайте розмiрнiсть  масиву\n");
   cin>>roz1;
   cout<<Rus("Задайте  число b\n");
   cin>>b;
   cout<<Rus("Задайте масив\n");
   for(i=0;i<roz1;i++)
   cin>>al[i];
   mas1(al,b,roz1);
       
  }
  break;
  case 2:
   cout<<Rus("Задайте розмiрнiсть  масиву\n");
   cin>>roz2;
   cout<<Rus("Задайте масив\n");
   for(j=0;j<roz2;j++)
   cin>>dl[j];
   mas2(dl,roz2);
      
      break;
  default:cout<<Rus("Невiрний вибiр, зробiть правельний");
  }
  system("pause");
}
 
char bufRus[256];
char* Rus(const char* text)
{
    CharToOem(text,bufRus);
    return bufRus;
}
 
void mas1(int al[],int b,int roz1);
{   int i;
    for (i=0;i<roz1;i++)
    if(al[i]<=b)
    cout<<mas1(al[i]);   
 
}
 
void mas2(int dl[],int roz2)
{int i;
 for (i=0;i<roz2;i++)
 if(dl[i]<0)
 cout<<mas2(dl[i]);
}
0
Ev_Hyper
Заблокирован
09.02.2014, 17:39 #5
foto-hunter, почему бы вам не вынести этот участок кода из свитча
C++
1
2
3
4
5
   cout<<Rus("Задайте розмiрнiсть  масиву\n");
   cin>>roz2;
   cout<<Rus("Задайте масив\n");
   for(j=0;j<roz2;j++)
   cin>>dl[j];
и вы забыли объявить al(dl)
0
foto-hunter
0 / 0 / 0
Регистрация: 03.02.2014
Сообщений: 5
09.02.2014, 18:32  [ТС] #6
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
foto-hunter, почему бы вам не вынести этот участок кода из свитча
C++
1
2
3
4
5
   cout<<Rus("Задайте розмiрнiсть  масиву\n");
   cin>>roz2;
   cout<<Rus("Задайте масив\n");
   for(j=0;j<roz2;j++)
   cin>>dl[j];
и вы забыли объявить al(dl)
Мне нужны 2 независимые програмы, и мне кажется , что это не исправит те ошибки, которые выдает компилятор( на каждою програму- функцию по 4). А поповоду al(dl) - я же вроде их обьявил в прототипе функции? Или что-то не так? (Второй раз использую функцию пользователя - первый раз сразу получилось, а вот с массивами проблема)
0
Ev_Hyper
Заблокирован
09.02.2014, 19:01 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от foto-hunter Посмотреть сообщение
Мне нужны 2 независимые програмы
раз у вас есть условие выбора, значит одновременно они работать не будут, или одна или другая. Поэтому нет смысла создавать 2 отдельных массива.

Цитата Сообщение от foto-hunter Посмотреть сообщение
что это не исправит те ошибки, которые выдает компилятор
конечно не исправит.

Цитата Сообщение от foto-hunter Посмотреть сообщение
А поповоду al(dl) - я же вроде их обьявил в прототипе функции?
а в main() вы где их создаете?

Добавлено через 18 минут
1. Объявите массив:
C++
1
int *al = new int[roz1];
2. Что вы хотите сделать вот в этих строчках?
C++
1
2
3
cout<<mas1(al[i]);   
...
cout<<mas2(dl[i]);
насколько я понял:
C++
1
cout<<al[i];
3. Почему не используете для вывода русских букв?
C++
1
setlocale(LC_ALL,"");
В итоге получится:
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
void mas1(int al[],int,int);
void mas2(int dl[],int);
 
void main()
{ 
    setlocale(LC_ALL,"");
  int roz1, b, vub;
  
  cout<<"Виберiть задачу:\n 1)Меншi або бiльшi b елементи масиву. \n 2)Вивiд вiдэмних елементiв\n";
  cin>>vub;
  cout<<"Задайте розмiрнiсть  масиву\n";
   cin>>roz1;
   int *al = new int[roz1];
   cout<<"Задайте масив\n";
   for(int j=0;j<roz1;j++)
   cin>>al[j];
  switch (vub)
  { 
  case 1:
      {
   cout<<"Задайте  число b\n";
   cin>>b;
   mas1(al,b,roz1);
      }
  break;
      
  case 2:
   mas2(al,roz1);
    break;
  default:cout<<"Невiрний вибiр, зробiть правельний";
  }
  system("pause");
}
 
 
void mas1(int al[],int b,int roz1)
{   int i;
    for (i=0;i<roz1;i++)
    if(al[i]<=b)cout<<al[i];
   // cout<<mas1(al[i]);   
 
}
 
void mas2(int dl[],int roz2)
{int i;
 for (i=0;i<roz2;i++)
 if(dl[i]<0)cout<<dl[i];
// cout<<mas2(dl[i]);
}
вроде бы все основные ошибки ушли
1
09.02.2014, 19:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 19:01
Привет! Вот еще темы с ответами:

Заменить все четные элементы на их квадраты (не верно работает) - C++
//Дан массив целых чисел //Заменить все четные элементы на их квадраты, //а нечетные удвоить #include &quot;stdafx.h&quot; #include...

Не верно работает strcmp при сравнении двух слов - C++
Добрый вечер уважаемые программисты! В общем проблема в следующем, надо из файла F1 скопировать все строки в F2 в которых нет повторяющихся...

В заданной последовательности найти минимум из чисел lg(х), не используя массив (верно ли написан код?) - C++
#include&lt;conio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; using namespace...

Вычисления выражения - C++
Составьте программу для вычисления выражения f=max(A)/max(C)-max(B) где A, B, C, - массивы целых чисел


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

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

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