Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80

Найти элементы массива, которые являются точными квадратами и вычислить их произведение

02.02.2016, 10:02. Показов 2193. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан линейный массив действительных чисел. Найти все элементы данного массива, которые являются точными квадратами и вычислить их произведение.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2016, 10:02
Ответы с готовыми решениями:

Найти все элементы массива, которые являются точными квадратами, и посчитать их произведение
Помогите пожалуйста, исправьте ошибку Дано линейный массив действительных чисел. Найти все элементы данного массива, которые являются...

Найти все элементы данного массива, которые являются точными квадратами и посчитать их произведение
Дано линейный массив действительных чисел. Найти все элементы данного массива, которые являются точными квадратами и посчитать их...

Дан массив действительных чисел. Вывести на экран элементы, которые не являются точными квадратами и вычислить их количество
Дан массив действительных чисел. Вывести на экран элементы, которые не являются точными квадратами и вычислить их количество

26
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
04.02.2016, 07:46
Студворк — интернет-сервис помощи студентам
Байт,
Цитата Сообщение от Байт Посмотреть сообщение
1. На i=1 программа вылетит с треском (корень из отрицательного числа)
нет,не вылетает,я прежде чем опубликовать код,всегда компилирую его и тестирую программу.Впрочем,для спокойствия можно добавить условие if(arr[i] > 0).
Цитата Сообщение от Байт Посмотреть сообщение
2. Есть железная 100-процентная уверенность, что sqrt(1000000) == 1000 ?
подставил 1000000,работает,для наглядности сделал в виде таблицы-индекс,значение элемента,корень из него:
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>
#include <stdlib.h>
#include <math.h>
/*Найти все элементы данного массива,
которые являются точными квадратами и вычислить их произведение.*/
int main()
{
    int i, x, arr[10] = {3, -7, 12, -6, 9, 16, 36, 81, 1, 1000000};
    double mult = 1.0;
    for(i = 0; i < 10; ++i){
        x = sqrt(arr[i]);
        if(x * x == arr[i]){
            printf("\n");
            printf("%d ", i);
            mult = mult * arr[i];
            printf("%d ", arr[i]);
            printf("%d ", x);
        }
    }
    printf("\nPerfect square product is\n %g", mult);
    return 0;
}
Миниатюры
Найти элементы массива, которые являются точными квадратами и вычислить их произведение  
0
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
04.02.2016, 08:42
Версия для double-массива с добавлением if(arr[i] > 0):
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>
#include <stdlib.h>
#include <math.h>
/*Найти все элементы данного массива,
которые являются точными квадратами и вычислить их произведение.*/
int main()
{
    double mult = 1.0, x, arr[10] = {3.12, -7.6, 19.36, -6.0, 9.0, 16.0, 36.0, 81.0, 1.0, 1000000.0};
    int i;
    for(i = 0; i < 10; ++i){
        if(arr[i] > 0){
            x = sqrt(arr[i]);
            if(x * x == arr[i]){
                printf("\n");
                printf("%d ", i);
                mult = mult * arr[i];
                printf("%g ", arr[i]);
                printf("%g ", x);
        }
        }
    }
    printf("\nPerfect square product is\n %g", mult);
    return 0;
}
Правда,несколько смущает что не печатается значение 19.36 и корень из него 4.4,ведь оно соответствует условию
if(x * x == arr[i]),хоть и не является точным квадратом в строгом определении(что соответствует условию задачи).

Добавлено через 18 минут
Цитата Сообщение от Adamsyork Посмотреть сообщение
Как я уже говорил наверно с преподом не повезло...
Какой бы ни был препод-знания нужны именно тебе.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
04.02.2016, 11:02
Цитата Сообщение от LFC Посмотреть сообщение
подставил 1000000,работает
Хм.. Любопытно. Значит sqrt считает с избытком? А всегда ли? Вообще-то sqrt возвращает double. Приведение его к int (а int x = sqrt(..) и означает такое приведение) состоит просто в обрезании дробной части.

Добавлено через 2 минуты
Цитата Сообщение от LFC Посмотреть сообщение
несколько смущает
В машинном представлении действительных чисел ты найдешь еще много "смущающих" моментов...
0
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
04.02.2016, 15:02
Цитата Сообщение от Байт Посмотреть сообщение
Приведение его к int (а int x = sqrt(..) и означает такое приведение) состоит просто в обрезании дробной части.
в версии моего кода для double-массива, x именно double,но результаты те же.А почему sqrt должна неправильно обрабатывать 1000000?
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
04.02.2016, 16:15
LFC, да, возможно я и не прав.
C
1
printf("%.20f", sqrt(3600000000))
дало именно точное значение. Сдаюсь!
Однако не перестаю относиться к машинным операциям над действительными числами с большим подозрением..
0
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
04.02.2016, 17:35
Цитата Сообщение от Байт Посмотреть сообщение
Однако не перестаю относиться к машинным операциям над действительными числами с большим подозрением.
Чего далеко ходить,19.36 не печатает)))Хотя я проверял,корень правильно вычисляет: 4.4, обратно в квадрат тоже правильно приходит: 19.36, а вот печатать - не печатает!
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
04.02.2016, 19:17
LFC, тут у Evg был материал на эту тему. То ли на форуме, то ли в блоге. Очень интересный, в его вдумчивом стиле. Если попадется - скину сюда ссылку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2016, 19:17

Вывести на экран элементы массивы, которые не являются точными квадратами, и их количество
Дано линейный массив действительных чисел. Вывести на экран элементы, которые не являются точными квадратами и вычислить их количество.

Найти количество таких чисел в диапазоне [a;b], которые являются точными квадратами
Пожалуйста, помогите написать программу на С Вводятся числа a и b. Найти количество таких чисел в диапазоне , которые являются точными...

Найти все трехзначные парные числа, которые являются точными квадратами
Помогите пожалуйста 1. Найти все трехзначные чётные числа, которые есть точными квадратами. 2. Протабулировать функцию f(x,y) , якщо x...

Найти элементы массива, которые являются квадратами некоторого числа m
Даны целые положительные числа a1,а2...а энное. Найти среди них те, которые являются квадратами некоторого числа m. (Использовать массив)

Найти среди элементы массива, которые являются квадратами некоторого числа т.
Даны целые положительные числа а1, а2,..., аn. Найти среди них те, которые являются квадратами некоторого числа т.


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru