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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 22:47   #1
xcyber
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
Печаль Задачи по C (Borland C 3.1) Нужна помощь в решении

Задача 1:
В одномерном массиве, состоящем из n элементов, вычислисть:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалитв из него все элементы, модуль которых находиться в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями.


Вот, что написал, но неправильно, не могу исправить.
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define n 7
void main()
{
int a[n], i, j, max, m, sum;
clrscr();
randomize();
for (i=0; i<n;i++)
 {
   a[i]=random(51);
   printf ("\n %d", a[i]);
 }
	max=a[0];
	for (i=1;i<n;i++)
	{
	 if (max < a[i])
	 max = a[i];
         printf ("\n MAX ELEMENT=%d", max);
	}
m=n-1;
sum=0;
while (a[m]<=0) m--;
while (m < 0) sum=sum+a[--m];
printf ("\n Symma=%d",sum);
printf ("\n Press any key to exit...");
getch ();
}
---------------------------------------------------------------------
---------------------------------------------------------------------
Задача 2:
В одномерном массиве, состоящем из n элементов, вычислисть:
1) количество элементов, равных 0
2) сумму элементов массива, расположенных после минимального элемента.
Упорядочить элементы массива по возрастанию модулей элементов.

Весь день бьюсь над этими задачами, ничего не получается.
БОЛЬШАЯ ПРОСЬБА, помочь разобраться. Выполнить надо задачи на С - Borland C 3.1
xcyber вне форума Ответить с цитированием
Старый 18.12.2008, 13:57   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define n 7
void main()
{
int a[n], i, j, max, m, sum;
clrscr();
randomize();
for (i=0; i<n;i++)
{
a[i]=random(51);
printf ("\n %d", a[i]);
}
max=a[0];
for (i=1;i<n;i++)
{
if (max < a[i])
max = a[i];
printf ("\n MAX ELEMENT=%d", max);
}
//думаю до этого момента работает. Так?
//сумма элементов массива, расположенных до последнего положительного элемента

i=0;
sum=0;
while ((a[i]>=0))
{
sum=sum+a[i];
i++;
if (i==n)
break;
}
printf ("\n Symma=%d",sum);
printf ("\n Press any key to exit...");
getch ();
}
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 18.12.2008 в 15:02.
Sweta вне форума Ответить с цитированием
Старый 18.12.2008, 14:17   #3
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

2 задача п.1
include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define n 7 //Это если задано кол-во элементов
void main()
{
int a[n], i, j, min, m, sum;
clrscr();
randomize();
for (i=0; i<n;i++)
{
a[i]=random(51);
printf ("\n %d", a[i]);
}
m=0;
for (i=0;i<n;i++)
{
if (a[i]==0)
m++;
}
printf ("\n =%d", m);

//п2
min=a[0];
m=0;
for (i=0;i<n;i++)
{
if (a[i]<min)
{
min=a[i];
m=i;
}
}
sum=0;
for (i=m;i<n;i++)
sum=sum+a[i];
printf ("\n =%d", sum);
printf ("\n Press any key to exit...");
getch ();
}
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 18.12.2008 в 15:26.
Sweta вне форума Ответить с цитированием
Старый 23.12.2008, 17:04   #4
xcyber
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 11
По умолчанию

Благодарю Sweta, вроде как с одномерными массивами разобрался.
Теперь мне дали 2мерные массивы...

Задача:
1. Вывести массив состоящий из случайных цифр.
2. Элементу главной диоганали присвоить значение равное разности произведений элементов до него и после в соответсвующей строке.

Первую часть сделал, вторую - вынос мозга....
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
void main()
{
   int a[5][5], i, j, n;
   clrscr();
      printf ("VVedite razmernost massiva n =  ");
      scanf ("%d", &n);
   randomize();
for (i=0; i<n; i++)
   for (j=0; j<n; j++)
   {
   a[i][j]=random(5)+1;
   prantf ("%5d", a[i][j]);
   }
// Вторая часть задания
....
getch();
}

Последний раз редактировалось xcyber; 23.12.2008 в 17:09.
xcyber вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срочно нужна помощь в решении несложной задачи AlexUnder Паскаль, Turbo Pascal, PascalABC.NET 6 27.11.2012 16:44
Нужна помощь в решении нескольких задач KpeHDeJIb Помощь студентам 16 28.06.2008 13:17
Нужна помощь в решении двух задач Exact Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2008 09:01
Нужна помощь в решении задачи в Delphi AndrYxo Помощь студентам 10 28.04.2008 15:53