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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2015, 19:43   #1
username12
 
Регистрация: 03.11.2015
Сообщений: 6
По умолчанию Как переделать код под задачу? - C (СИ)

В вещественном массиве отнармировать все числа по максимальному элементу.Как это реализовать? заранее спасибо
Найти максимальный по модулю элемент, потом поделить все элементы массива на него

Код:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include"logotip.c"
#include"time.h"
main(int argc,char* argv[])
{
logo();
puts("Краткое изложение задачи:");
puts("После каждых 3-хотрицательных чисел вставить их сумму с плюсом");
puts("Работу выполнил Маркин Кирилл Анатольевич,ИВТ-12");
puts("Благодарность обявляется Полухину Владу, ИВТ-12");
puts("Нажмите Enter");getchar();
char buffer[20];
int mass[100];srand(time(NULL));
int mas[100];srand(time(NULL));
srand(time(NULL));
int i,n,c,k,K,a,b,y;
int razmer=0;
if(argc<3)
{ printf("Программа создает одномерным массив,размер которого не должен превышать 100.\n",argv[0]);
printf("Вы можете вводить массив 2 способами,используйте:\n",argv[0]);
printf("%s Ручной <размер массива> или %s Рандом <размер массива>(Без <>)\n",argv[0],argv[0]);
printf("Нажмите Enter!");getchar();exit(0);}
razmer=atof(argv[2]);
if(razmer>100){printf("Слишком большой размер массива(не должен превышать 100)\n");exit(0);}
if(razmer<2){printf("Размер не может быть меньше 2)\n");exit(0);}
printf("Вы задали массив с размером = %d \n",razmer);
printf("\n");puts("Работу выполнил Маркин Кирилл Анатольевич,ИВТ-12");
if(strcmp(argv[1],"Ручной")==0)
{
for(i=0;i<razmer;i++)
{
printf("Введите значение mass[%d]\n",i);
fgets(buffer,20,stdin);
mass[i]=atoi(buffer);
}
}
if(strcmp(argv[1],"Рандом")==0)
{srand(time(NULL));
mass_rand(mass,razmer);
}
printf("\n");
printf("Обработанный массив \n");
printf("\n");
K=0; y=0;
for(i=0;i<razmer;i++)
{
mas[i+y]=mass[i];
printf("%4d", mas[i+y]);
if(mass[i]>=0 )
{
K=0;
a=0;
b=0;
c=0;
}
if(mass[i]<0)
{ K=K+1;}
if (K==1)
{a=mass[i];}
if (K==2)
{b=mass[i];}
if (K==3)
{
y++;
mas[i+y]=(a+b+mass[i])*(-1);
printf("%4d", mas[i+y]);
K=0;
}
}
printf("\n");
printf("\n");
printf("Массив \n");
printf("\n");
for(i=0;i<razmer;i++)
{
printf("%4d",mass[i]);
}
printf("\n");
printf("\n");
}
username12 вне форума Ответить с цитированием
Старый 17.12.2015, 20:38   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

всего два цикла.
Первый for;; ищем максимум по модулю.
Второй for;; делим все на максимальный..
Делов на 6 строчек..
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать код под условие Sashaa_i C# (си шарп) 0 06.12.2015 02:48
Как переделать код под асм andrello Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 28.02.2015 23:06
Переделать код С++ под Visual Stidio (2008). FDCastro Помощь студентам 3 03.04.2013 21:51
как переделать задачу на с++ Danil_59 Фриланс 0 15.04.2012 14:23
[LISP] Переделать код под использование цикла DO HostileZeth Помощь студентам 0 24.09.2011 20:25