Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 23:09   #1
Катюшенька
Пользователь
 
Аватар для Катюшенька
 
Регистрация: 08.12.2008
Сообщений: 32
Стрелка Вычисление количества элементов массива, которые при округлении дают 6

Дан массив размера 3 x 4 с элементами вещественного типа. Написать программу для вычисления количества элементов массива, которые при округлении дают 6

Цитата:
#include <math.h>
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr ();
const int nstr=3, nstb=4;
int b[nstr][nstb];
int i,j;
double sum;
for (i=0; i<nstr; i++)
for (j=0; j<nstb; j++)
scanf ("%d", &b[i][j]);
do
{
sum+=b[i][j];
}
while (5.5<=b[i][j]<=6);
printf ("%d", sum);
}
Верю... Надеюсь... Люблю...
Катюшенька вне форума Ответить с цитированием
Старый 22.12.2008, 23:14   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

У вас написано: выполнять, пока элемент while (5.5<=b[i][j]<=6).
А если первый же элемент меньше 5,5 ?
Кстати, 6,3 при округлении тоже даст 6
mihali4 вне форума Ответить с цитированием
Старый 22.12.2008, 23:23   #3
Катюшенька
Пользователь
 
Аватар для Катюшенька
 
Регистрация: 08.12.2008
Сообщений: 32
По умолчанию

Честно говоря не поняла...
Как выполнить это?
Верю... Надеюсь... Люблю...
Катюшенька вне форума Ответить с цитированием
Старый 22.12.2008, 23:38   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Нужно перебрать ВСЕ элементы массива. И суммировать только те, которые прошли проверку на соответствие 5,5<=X<6,5.
А функции ROUND в СИ нет?

Последний раз редактировалось mihali4; 22.12.2008 в 23:45.
mihali4 вне форума Ответить с цитированием
Старый 22.12.2008, 23:44   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <math.h>
#include <stdio.h>
#include <conio.h>
const int nstr=3, nstb=4;
int main()
{
float b[nstr][nstb];
int i,j;
float sum=0.0;

for (i=0; i<nstr; i++)
 for (j=0; j<nstb; j++)
 {      printf("b[%d][%d]= ",i,j);
        scanf ("%f", &b[i][j]);
        printf("\n");
    }
for(i=0;i<nstr; i++)
 for(j=0;j<nstb; j++)
  if(round(b[i][j])==6.0) sum += b[i][j];

printf ("%f", sum);
getch();
return 0;
}
Катюшенька У вас числа вещественные, а вы пользуетесь спецификатором %d.
И еще, насколько я знаю, scanf не поддерживает тип double. По крайней мере, у меня заработало только с float.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 22.12.2008 в 23:47.
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
Добавление элементов массива в массив JOFRIF Общие вопросы C/C++ 11 04.10.2008 01:47
Упорядочение элементов массива Юлёк PHP 2 28.01.2008 21:27
Произведение элементов массива gamer123 Помощь студентам 5 19.01.2008 22:02
Вывод ненулевых элементов массива Ci_novice Общие вопросы C/C++ 2 28.12.2007 14:59