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

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

Войти
Регистрация
Восстановить пароль
 
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
#1

чему нас учат в институте %) - C++

07.01.2010, 00:04. Просмотров 698. Ответов 5
Метки нет (Все метки)

тут такая вот ситуация нашел пару ошибок в одной из предоставленных задач и их решений в своей методичке по С++, а именно:
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
const int N1=100;
int i,n,p,fl;
float a[N1],d;
printf(" vvedite 4islo elementov massiva: \n");
scanf("%d",&n);
printf("\n vvedite elementi massiva: \n");
for(i=0;i<n;i++)
{
printf("\n vvedite %d-j element massiva: ",i+1);
scanf("%f",&a[i]);
}
printf("\n Ishodnyj massiv:\n");
for(i=0;i<n;i++)
printf("%7.2f",a[i]);
do
{
fl=1;
for(i=0;i<n-1;i++)
if(a[i]>a[i+1])
{
d=a[i];
a[i]=a[i+1];
a[i+1]=d;
fl=0;
}
}
while(!fl);
printf("\n obrabotannyj massiv:\n");
for(i=0;i<n;i++)
printf("%7.2f",a[i]);
getch();
}
в седьмой строке указана переменная p которая должна была быть произведением всех элементов массива, но как я уже потом допетрил произведения нет, точнее я понял что переменная есть но не используется, перечитал - произведение, ладно...пусть не будет! в двадцатьтретьей строке еще одна ошибка. я раз 20 перечитал по буквам вверх и вниз, ну все как в методичке. если б не случайность, я б наверно никогда б и не нашел -1этот.
вот теперь не могу разобраться с такой задачей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
const int N1=100;
int a[N1],i,n,s;
printf("\n Vvedite 4islo elementov massiva: ");
scanf("%d",&n);
randomize();
for(i=0;i<n;i++)
a[i]=random(10);
printf("\n Polu4ennyj massiv:\n\n");
for(i=0;i<n;i++)
printf("%5d",a[i]);
s=0;
for(i=0;i<n;i++);
s=s+a[i];
printf("\ns=%5d",s);
getch();
}
где здесь ошибка, хотя далее та же задача в варианте с указателями прекрасно работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
const int N1=100;
int a[N1],*ptr,n,s;
printf("\n vvedite 4islo elementov massiva: ");
scanf("%d",&n);
randomize();
for(ptr=a;ptr-a<n;ptr++)
*ptr=random(10);
printf(" polu4ennyj massiv:\n");
for(ptr=a;ptr-a<n;ptr++)
printf("%5d",*ptr);
s=0;
for(ptr=a;ptr-a<n;ptr++)
s=s+*ptr;
printf("\n s=%5d",s);
getch();
}
помогите понять где ошибка, почему не так... может в будущем буду лучше понимать массивы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2010, 00:04     чему нас учат в институте %)
Посмотрите здесь:

Источник, где учат писать оконный интерфейс на с++ - C++
Здравстуйте, кто-нибудь мог бы подсказать источник, где учат писать оконный интерфейс на с++. Буду очень признателен.

Посчитать сколько студентов учат английский язык - C++
В общем у меня есть структура: struct students { char name; char adress; char lang; unsigned long long int...

Написать программу, которая по введенному году обучения в институте выводит соответствующее сообщение - C++
(Разветвляющиеся алгоритмы) Помогите написать программу, которая по введенному году обучения в институте выводит соответствующее...

Какого типа у нас *point ? - C++
int (*point) ;

Как писать в привычных для нас окнах? - C++
Только начинаю изучать с++, во всех учебниках (которые я скачал) учат писать в консоли Как писать в окнах(с формой)

у нас есть число.МЫ не знаем его длины.Как обратиться к первому элементу?? - C++
В общем тема такая &quot; у нас есть число.МЫ не знаем его длины.Как обратиться к первому элементу?? &quot;

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Delphin_KKC
UNIX-way
709 / 494 / 17
Регистрация: 15.01.2009
Сообщений: 1,721
07.01.2010, 00:24     чему нас учат в институте %) #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
const int N1=100;
int a[N1],i,n,s;
printf("\n Vvedite 4islo elementov massiva: ");
scanf("%d",&n);
randomize();
for(i=0;i<n;i++)
a[i]=random(10);
printf("\n Polu4ennyj massiv:\n\n");
for(i=0;i<n;i++)
printf("%5d",a[i]);
s=0;
for(i=0;i<n;i++) //тут в конце строки была лишняя точка с запятой
s=s+a[i];
printf("\ns=%5d",s);
getch();
}
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.01.2010, 02:46     чему нас учат в институте %) #3
Цитата Сообщение от cibertronic
если б не случайность, я б наверно никогда б и не нашел -1этот
нормальный -1 - не даёт вылезти за край массива

Цитата Сообщение от cibertronic
p которая должна была быть произведением всех элементов массива
записана она не там, так как элементы вещественные
произведение тоже вещественное получится (если его сделать в том же цикле, что в восемнадцатой строке)
ISergey
07.01.2010, 03:16
  #4

Не по теме:

тут такая вот ситуация нашел пару ошибок в одной из предоставленных задач и их решений в своей методичке по С++
У меня в универе специально в каждой задаче по пару ошибок сделано..

cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
07.01.2010, 03:17  [ТС]     чему нас учат в институте %) #5
Цитата Сообщение от cibertronic Посмотреть сообщение
в двадцатьтретьей строке еще одна ошибка. я раз 20 перечитал по буквам вверх и вниз, ну все как в методичке. если б не случайность, я б наверно никогда б и не нашел -1этот.
когда я убрал это то все отлично заработало, а за край массива константа N1 не даст вылезти
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2010, 06:58     чему нас учат в институте %)
Еще ссылки по теме:

Преобразовать строку, записав адрес прававильно: <область>, <нас. пункт>, <улица>, <дом / квартира>, <индекс> - C++
Строка, содержит почтовый адрес, произвольной формы. Преобразовать строку, записав адрес прававильно: &lt;область&gt;, &lt;нас. пункт&gt;, &lt;улица&gt;,...

Чему Учиться ??? - C++
Скачал Visual Studio 2008, хочу выучить что нить в области Visual C++, вот подскажите что лучше Win32 Api или CLR(C++/CLI: язык Visual C++...

К чему стремиться? - C++
Начал изучать c++ , пользуюсь книгами ,видео уроками, подсказками с форумов. Это все не важно , я просто не знаю что я буду делать дальше....

Чему равно а? - C++
int a; a = 'a' &lt; 'b' &lt; 'c' - 'c' &gt;&gt; 1 % ('b' - 'a');

Найти чему равно - C++
вот такое деление. Не могу написать программку, получается не правильное число. Число должно равняться числу 0,761597. Помогите разобраться.

float x=0.2 Чему равно х? - C++
Угадай результат: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() ...


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

Или воспользуйтесь поиском по форуму:
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.01.2010, 06:58     чему нас учат в институте %) #6
C
1
2
for(i=0;i<n-1;i++)
if(a[i]>a[i+1])
видишь там i+1
будет сравнение на последнем шаге a[n-1] > a[n]
элемента a[n] нету
поэтому сделано, чтобы на последнем шаге было a[n-2] > a[n-1]

Цитата Сообщение от cibertronic
а за край массива константа N1 не даст вылезти
это если n маленкое, но ничто не мешает ввести n равное N1

дело даже не в этом
Цитата Сообщение от cibertronic
когда я убрал это то все отлично заработало
если обнулить массив, вот это ноль за краем должен будет в начало установиться
Yandex
Объявления
07.01.2010, 06:58     чему нас учат в институте %)
Ответ Создать тему
Опции темы

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