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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2019, 15:41   #1
DoDor
 
Регистрация: 03.10.2019
Сообщений: 8
По умолчанию Вычислить произведение элементов массива.

Здравствуйте, не знаю как сделать 3 задание, помогите пожалуйста на Си

Задание 3: вычислить произведение элементов массива, равных заданному k. Значения задавать с клавиатуры.
PS: Решил перезалить вопрос.
Код:
float main() {
	system ("chcp 1251"); 

	printf ("Введите размер массива:");
	int n,i,j=0,a,b,k;
	float min,max;
		srand(time(NULL));
		scanf("%d",&n);
		
	float *x = (float*)malloc(sizeof(float)*n);
	
	for(i=0;i<n;i++)
		{ x[i]=*(x+i)= rand()%101/(rand()%31+1.);
			printf("%f ",x[i]);
		}
	
	printf("Введите k: "); 
	int q = scanf("%d" , &k);
    if (q!=1) {printf ("Введено не число \n");
              system("pause");
              exit(0);}	
		
	
	free(x);
 }
DoDor вне форума Ответить с цитированием
Старый 04.10.2019, 16:00   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от DoDor Посмотреть сообщение
PS: Решил перезалить вопрос.
Зачем?

Код:
x[i]=*(x+i)=
Что вы этим хотели сказать?

Цитата:
Сообщение от DoDor Посмотреть сообщение
вычислить произведение элементов массива, равных заданному k
Даже проходящий 5 классник предложил два варианта решения:
1. Пройтись по массиву подсчитать кол-во, равных k, и умножить это кол-во на k.
2. Завести переменную, равноую 1, пробежаться по массиву и если равен k домножать на k ее.
p51x вне форума Ответить с цитированием
Старый 05.10.2019, 00:55   #3
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Цитата:
Сообщение от DoDor Посмотреть сообщение
PS: Решил перезалить вопрос.
Зачем?
Продолжали бы в C++

Если скопировали у кого то код и хотите в нем разобратся, так Вы так и говорите.
Вот к примеру, зачем Вам в таком мизерном кодо-движении функция:
Цитата:
Сообщение от DoDor Посмотреть сообщение
malloc
Она рентабельна при возникновении необходимости обработки больших массивов данных при ограниченном количестве ОЗУ. Т. Е. загружаем в ОЗУ обрабатываемые данные частями, указывая размер обрабатываемой части при помощи функции malloc. Это может быть оправдано например при обработке больших объемов данных в контроллере на базе ядра ARM, STM32Fxxx к примеру.
Скажите чесно, листинг, так от булды вставили?
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 05.10.2019 в 01:03.
Desc вне форума Ответить с цитированием
Старый 05.10.2019, 14:53   #4
DoDor
 
Регистрация: 03.10.2019
Сообщений: 8
По умолчанию

Здравствуйте, начнем с того почему не С++. Я только занялся программированием и по стечению обстоятельств пишу на си. Функция malloc использовалась у меня в примера по которому я начал делать этот код. (Как не трудно заметить знаю я в этой области не много). Ту часть что я написал в коде я более менее понял, а вот то что делать дальше вызывает у меня затруднение ибо найти пример не удается. И как написал комментатор помочь != решить за меня, что крайне печально. надеюсь я ответил на ваш вопрос.
DoDor вне форума Ответить с цитированием
Старый 05.10.2019, 16:35   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так С или С++?
p51x вне форума Ответить с цитированием
Старый 05.10.2019, 18:00   #6
DoDor
 
Регистрация: 03.10.2019
Сообщений: 8
По умолчанию

эту программу на си делаю
DoDor вне форума Ответить с цитированием
Старый 05.10.2019, 18:24   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так в чем проблема? В моем посту аш два решения...
p51x вне форума Ответить с цитированием
Старый 05.10.2019, 20:59   #8
DoDor
 
Регистрация: 03.10.2019
Сообщений: 8
По умолчанию

что то я фигню уже творю
Код:
	printf("Ввидите k: "); 
	int q = scanf("%d" , &k);
    if (q!=1) {printf ("Введено не число \n");
              system("pause");
              exit(0);}	
              
    for (i = 0; i < n; i++)
		   {if(x[i] == k)
              {k++;}
            if (x[i]*k);
			}
		    else printf("%d \n",k);

Последний раз редактировалось DoDor; 05.10.2019 в 21:01.
DoDor вне форума Ответить с цитированием
Старый 05.10.2019, 21:19   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Полную. Вы зачем данную по условию k трогаете? Вы почему кол-во элементов не от 0 считаете? Что вы делаете пустым ифом в цикле? К чему элс относится?
p51x вне форума Ответить с цитированием
Старый 05.10.2019, 22:05   #10
DoDor
 
Регистрация: 03.10.2019
Сообщений: 8
По умолчанию

я переделал немного
Код:
 	
float main() {
	printf ("Введите размер массива:");
	int n,i,j=0,a,b,k,mult;
	float min,max;
		srand(time(NULL));
		scanf("%d",&n);
		
	float *x = (float*)malloc(sizeof(float)*n);
	
	for(i=0;i<n;i++)
		{ x[i]=rand()%101/(rand()%31+1.);
			printf("%f ",x[i]);
		}
		
//Задание 3: Вычислить произведение элементов массива, равных заданному k. Значения задавать с клавиатуры.
	
	printf("Введите k: "); 
	int q = scanf("%d" , &k);
    if (q!=1) {printf ("Введено не число \n");
              system("pause");
              exit(0);}	
    
   for (i=0; i < n; i++){
   		if (x[i] == k)
   		mult *= x[i];
   		}
   		printf("%d \n",mult);
   		
	free(x);
 }
DoDor вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить произведение элементов массива. DoDor Общие вопросы C/C++ 4 06.10.2019 15:54
[Си] Вычислить произведение элементов массива, кратных 7 SjMan Помощь студентам 3 19.12.2016 01:23
Вычислить произведение элементов массива с четными номерами. Кулибаба Петро C++ Builder 3 11.12.2012 22:24
Вычислить произведение элементов массива, расположенных под главной диагональю вася2342 Помощь студентам 1 06.06.2012 09:40
вычислить произведение элементов массива с чётными номерами DimonNT Помощь студентам 3 29.11.2011 20:03