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

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

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

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

02.12.2009, 20:19. Просмотров 370. Ответов 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 минуты
можно не изменять сильно код и оставить те же операторы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
02.12.2009, 20:19     Указатели+массив. чуть подправить #2
niksdfw, у вас s может быть и не целым числом так что сделайте преобразование к double
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);
   
}
В принципе можно оставить и с целыми, но результат может быть грубее в сторону округления.
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
02.12.2009, 20:29  [ТС]     Указатели+массив. чуть подправить #4
он даже с целыми ведёт себя не правильно
попробую.

может ещё какие то идеи?
mikhail2704
39 / 39 / 8
Регистрация: 18.11.2009
Сообщений: 115
02.12.2009, 20:42     Указатели+массив. чуть подправить #5
У меня все прекрасно работает, даже с целыми.
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
02.12.2009, 21:13  [ТС]     Указатели+массив. чуть подправить #6
а у меня вычислет неверно :\
accept
4838 / 3237 / 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);
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
03.12.2009, 08:52  [ТС]     Указатели+массив. чуть подправить #8
большое спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2009, 09:27     Указатели+массив. чуть подправить
Еще ссылки по теме:

C++ кто желает мне подсобить чуть чуть?
C++ Задача на массив и указатели.(массив из случайных чисел)
Матрицы не могу доделать, чуть чуть осталось C++
C++ Изменить значение тех элементов у которых последняя цифра 1 или 2 чуть-чуть осталось
C++ Подправить готовую программу, что бы использовались указатели

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор 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);
}
Изображения
 
Yandex
Объявления
03.12.2009, 09:27     Указатели+массив. чуть подправить
Ответ Создать тему
Опции темы

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