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

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

Войти
Регистрация
Восстановить пароль
 
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
#1

Указатели+массив. чуть подправить - C++

02.12.2009, 20:19. Просмотров 390. Ответов 8
Метки нет (Все метки)

Введите с клавиатуры данные в массив целого типа, а затем выведите на экран их среднее значение.

тема:указатели

Программа работает, но ответ выдаёт не правильный. ошибается в вычислениях среднего значения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
void main()
{
    
    const int masSIZE=10;
        int mas[masSIZE],i;
        
    for (i=0;i<masSIZE;i++)
   
        scanf("%d",&mas[i]);
    
    
  
    int* p = mas;
    int s=0;
    for(i=0;i<masSIZE;i++)
    
       s = (s + *(p+i))/masSIZE;
        printf ("%d\n", s);
   
}
Добавлено через 3 минуты
можно не изменять сильно код и оставить те же операторы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2009, 20:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели+массив. чуть подправить (C++):

Нужно чуть подправить программы. Массив и структура. - C++
1. Двумерный массив. Вводим количество спортсменов, далее вводим имя для каждого. Для каждого из них рандомно выводятся результаты (6...

Подправить готовую программу, что бы использовались указатели - C++
Язык форума - русский. Переведите! Дано натуральне парне число n (n &gt;100) і послідовність цілих чисел a1, a2, …, a(n/2) Отримати нову...

файл вещественных чисел, нужно поравить код совсем чуть-чуть - C++
Вот написал, но работает только для целых чисел.Как сделать для файла с вещественными числами? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Изменить значение тех элементов у которых последняя цифра 1 или 2 чуть-чуть осталось - C++
Одномерный массив заданный случайными целыми числами от -10000 до 10000. Вывести значения массива до и после изменений. Размер массива...

кто желает мне подсобить чуть чуть? - C++
нужно написать программу: 31 В одномерном массиве, состоящем из n вещественных элементов, вычислить: − номер минимального по...

Матрицы не могу доделать, чуть чуть осталось - C++
7. Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее...

8
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
02.12.2009, 20:19 #2
niksdfw, у вас s может быть и не целым числом так что сделайте преобразование к double
0
mikhail2704
39 / 39 / 8
Регистрация: 18.11.2009
Сообщений: 115
02.12.2009, 20:27 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
void main()
{
    
    const int masSIZE=10;
        int mas[masSIZE],i;
        
    for (i=0;i<masSIZE;i++)
   
        scanf("%d",&mas[i]);
    
    
  
    int* p = mas;
    int s=0;
    for(i=0;i<masSIZE;i++)
    
       s = (s + *(p+i));
       s = s/masSIZE;
        printf ("%d\n", s);
   
}
В принципе можно оставить и с целыми, но результат может быть грубее в сторону округления.
0
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
02.12.2009, 20:29  [ТС] #4
он даже с целыми ведёт себя не правильно
попробую.

может ещё какие то идеи?
0
mikhail2704
39 / 39 / 8
Регистрация: 18.11.2009
Сообщений: 115
02.12.2009, 20:42 #5
У меня все прекрасно работает, даже с целыми.
0
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
02.12.2009, 21:13  [ТС] #6
а у меня вычислет неверно :\
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2009, 03:10 #7
C
1
2
3
4
    for (i = 0; i < masSIZE; i++)
        s += *(p+i);
    s /= masSIZE;
    printf ("%d" "\n", s);
лучше
C
1
2
3
4
5
    double s;
    for (i = 0, s = 0.0; i < masSIZE; i++)
        s += *(p+i);
    s /= masSIZE;
    printf ("%f" "\n", s);
1
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
03.12.2009, 08:52  [ТС] #8
большое спасибо
0
-=ЮрА=-
Заблокирован
Автор FAQ
03.12.2009, 09:27 #9
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
#include <stdio.h>
 
void main()
{
    const int masSIZE = 10;
    int mas[masSIZE],i;
        
    for (i=0;i<masSIZE;i++)
    {
        printf("mass[%d] = ",i);
        scanf("%d",&mas[i]);
    }
    
    //Вот так ещё можно 
    //инициализировать указатель
    int* p = &mas[0];
    //Здесь нужно число с плавающей точкой а не целое!!!
    //Сумма может быть целым а вот частное может и не быть
    double s = 0.0;
    for(i=0;i<masSIZE;i++)
       s += *(p + i);
    s = s/masSIZE;
    printf ("%.2f\n", s);
}
1
Изображения
 
03.12.2009, 09:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2009, 09:27
Привет! Вот еще темы с ответами:

Осталось чуть чуть доделать. Посмотрите - C++
помогите дописать программу. Она считывает текст из файла и выводит слова начинающиеся с ' -'. А нужно, чтобы выводило предложеия. ...

Закончить прогу. Чуть-чуть осталось - C++
Нужно заменить все маленькие латинские буквы на $. Мои наработки: #include &lt;windows.h&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...


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

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

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