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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 16:39   #1
In4ekk
Пользователь
 
Аватар для In4ekk
 
Регистрация: 19.10.2010
Сообщений: 13
По умолчанию Массивы в Си

даны 2 массива a и b....из них я отобрала некоторые числа(-10 до 10)....
помогите теперь отобранные числа записать в массив с...
Код:
#include <stdio.h>
#include <stdlib.h>
#define N 40
#define M 30
#define P

int random(int k)
{int x;
x=rand();
x=(int)(((float)x/0x7FFF)*k);
return x;
}

int main(void)
{ int a[N+1];    int i;
  printf("Zapolnite odnomernij massiv slu4 4islami. \n");
  printf("Diapazon 4isel ot -50 do +50. \n");
  for (i=1; i<=N; i++) a[i]=random (-100)+50;
  printf("Raspe4atka massiva \n");
  for (i=1; i<=N; i++) printf("%4d",a[i]);
  printf("\n");

  int b[M+1];    int y;
  printf("Zapolnite odnomernij massiv slu4 4islami. \n");
  printf("Diapazon 4isel ot -50 do +50. \n");
  for (y=1; y<=M; y++) b[y]=random (-100)+50;
  printf("Raspe4atka massiva \n");
  for (y=1; y<=M; y++) printf("%4d",b[y]);
  printf("\n");

  printf("\n");
  printf("Massiv soderzh 4isla ot -10 do 10. \n");
  {
     for (i=1; i<=N; i++)
     {
     if ((a[i]<= 10) && (a[i]>=-10)){
     printf("%4d",a[i]);}}
  }
   {
     for (y=1; y<=M; y++)
     {
     if ((b[y]<= 10) && (b[y]>=-10)){
     printf("%4d",b[y]);}}
  }
printf("\n");
printf("\n");
}

Последний раз редактировалось Stilet; 30.11.2010 в 16:43.
In4ekk вне форума Ответить с цитированием
Старый 29.11.2010, 16:52   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Вместо того , что бы распечатывать на экран числа , которые ты выбрал , просто записывай их в массив .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 29.11.2010, 16:54   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А вы выделение памяти проходили?
Если нет то создайте массив С размером равным сумме размеров двух других массивов, т.е. увас это будет
int C[70];
потом создайте дополнительную переменную int count = 0;
и вот пример кода
Код:
for (i=1; i<=N; i++)
{
    if ((a[i]<= 10) && (a[i]>=-10))
    {
        C[count] = a[i];
        count = count + 1;
    }
}
for (y=1; y<=M; y++)
{
    if ((b[y]<= 10) && (b[y]>=-10))
    {
         C[count] = b[y];
         count = count + 1;
    }
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 30.11.2010, 16:03   #4
In4ekk
Пользователь
 
Аватар для In4ekk
 
Регистрация: 19.10.2010
Сообщений: 13
По умолчанию

Доделалано теперь массив С выводится ненормально...числа не понятные)
Код:
#include <stdio.h>
#include <stdlib.h>
#define N 40
#define M 30
#define P 80

int random(int k)
{int x;
x=rand();
x=(int)(((float)x/0x7FFF)*k);
return x;
}

int main(void)
{ int a[N+1];    int i;
  printf("Zapolnite odnomernij massiv slu4 4islami. \n");
  printf("Diapazon 4isel ot -50 do +50. \n");
  for (i=0; i<=N-1; i++) a[i]=random (-100)+50;
  printf("Raspe4atka massiva \n");
  for (i=0; i<=N-1; i++) printf("%4d",a[i]);
  printf("\n");

  int b[M+1];    int y;
  printf("Zapolnite odnomernij massiv slu4 4islami. \n");
  printf("Diapazon 4isel ot -50 do +50. \n");
  for (y=0; y<=M-1; y++) b[y]=random (-100)+50;
  printf("Raspe4atka massiva \n");
  for (y=0; y<=M-1; y++) printf("%4d",b[y]);
  printf("\n");

  printf("\n");
  printf("Massiv soderzh 4isla ot -10 do 10. \n");
  int c[P+1]; int k;

     for (i=0; i<=N-1; i++)
     {
     if ((a[i]<= 10) && (a[i]>=-10))
     {
            c[k] = a[i];
            k=k+1;
     }
  }
     for (y=0; y<=M-1; y++)
     {
     if ((b[y]<= 10) && (b[y]>=-10))
     {
            c[k] = b[y];
            k=k+1;
     }
  }
   for (k=0; k<=P-1; k++) printf("%4d",c[k]);
  printf("\n");
printf("\n");
printf("\n");
}
Помогите пожалуйста

Последний раз редактировалось Stilet; 06.12.2010 в 15:06.
In4ekk вне форума Ответить с цитированием
Старый 30.11.2010, 16:15   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А что мне за это будет?

Лано не бери в голову!
Код:

#include <stdio.h>
#include <stdlib.h>
#define N 5
#define M 2
#define P 7

int random(int k)
{int x;
x=rand();
x=(int)(((float)x/0x7FFF)*k);
return x;
}

int main(void)
{ int a[N+1]; int i;
printf("Zapolnite odnomernij massiv slu4 4islami. \n");
printf("Diapazon 4isel ot -50 do +50. \n");
for (i=0; i<=N-1; i++) a[i]=random (-100)+50;
printf("Raspe4atka massiva \n");
for (i=0; i<=N-1; i++) printf("%4d",a[i]);
printf("\n");

int b[M+1]; int y;
printf("Zapolnite odnomernij massiv slu4 4islami. \n");
printf("Diapazon 4isel ot -50 do +50. \n");
for (y=0; y<=M-1; y++) b[y]=random (-100)+50;
printf("Raspe4atka massiva \n");
for (y=0; y<=M-1; y++) printf("%4d",b[y]);
printf("\n");

printf("\n");
printf("Massiv soderzh 4isla ot -10 do 10. \n");
int c[P]; int k = 0;

for (i=0; i<=N-1; i++)
{
if ((a[i]<= 10) && (a[i]>=-10))
{
c[k] = a[i];
k=k+1;
}
}
for (y=0; y<=M-1; y++)
{
if ((b[y]<= 10) && (b[y]>=-10))
{
c[k] = b[y];
k=k+1;
}
}
for (i=0; i<=k-1; i++) printf("%4d",c[i]);
printf("\n");
printf("\n");
printf("\n");
system ("pause");
}
C наилучшими пожеланиями от Hacker19_90!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Stilet; 06.12.2010 в 15:08.
Hacker19_90 вне форума Ответить с цитированием
Старый 06.12.2010, 15:04   #6
In4ekk
Пользователь
 
Аватар для In4ekk
 
Регистрация: 19.10.2010
Сообщений: 13
По умолчанию

Ребят....нужна еще ваша помощь ..

Вот вся программа,которая работает :
Код:
#include <stdio.h>
#include <stdlib.h>
#define N 40
#define M 30
#define P 70
#define S 70
#define T 70

int random(int u)
{int x;
x=rand();
x=(int)(((float)x/0x7FFF)*u);
return x;
}

int main(void)
{ int a[N+1]; int i;
printf("Zapolnite odnomernij massiv slu4 4islami. \n");
printf("Diapazon 4isel ot -50 do +50. \n");
for (i=0; i<=N-1; i++) a[i]=random (-100)+50;
    printf("Raspe4atka massiva \n");
for (i=0; i<=N-1; i++) printf("%4d",a[i]);
    printf("\n");

int b[M+1]; int y;
printf("Zapolnite odnomernij massiv slu4 4islami. \n");
printf("Diapazon 4isel ot -50 do +50. \n");
for (y=0; y<=M-1; y++) b[y]=random (-100)+50;
    printf("Raspe4atka massiva \n");
for (y=0; y<=M-1; y++) printf("%4d",b[y]);
    printf("\n");

    printf("\n");
printf("Massiv soderzh 4isla ot -10 do 10. \n");
int c[P]; int k = 0;

for (i=0; i<=N-1; i++)
{
    if ((a[i]<=10) && (a[i]>=-10))
{
    c[k] = a[i];
    k=k+1;
}
}
for (y=0; y<=M-1; y++)
{
    if ((b[y]<=10) && (b[y]>=-10))
{
    c[k] = b[y];
    k=k+1;
}
}
for (i=0; i<=k-1; i++) printf("%4d",c[i]);
    printf("\n");
    printf("\n");
    printf("\n");

    printf("\n");
printf("Massiv soderzh 4isla ot -20 do 50. \n");
int d[S]; int l = 0;

for (i=0; i<=N-1; i++)
{
    if ((a[i]<=50) && (a[i]>=-20))
{
    d[l] = a[i];
    l=l+1;
}
}
for (y=0; y<=M-1; y++)
{
    if ((b[y]<=50) && (b[y]>=-20))
{
    d[l] = b[y];
    l=l+1;
}
}
for (i=0; i<=l-1; i++) printf("%4d",d[i]);
printf("\n");
printf("\n");
printf("\n");

printf("Ob'edinenie massivov C i D \n");
int e[T]; int v = 0;

for (i=0; i<=P-1; i++)
{
    e[v] = c[i];
    v=v+1;
}
for (i=0; i<=S-1; i++)
{
    e[v] = d[i];
    v=v+1;
}
for (i=0; i<=v-1; i++) printf("%4d",e[i]);
system ("pause");
}
НО при выводе конечного массива (е) выводится куча всяких непонятных циферок..
Код:
printf("Ob'edinenie massivov C i D \n");
int e[T]; int v = 0;

for (i=0; i<=P-1; i++)
{
    e[v] = c[i];
    v=v+1;
}
for (i=0; i<=S-1; i++)
{
    e[v] = d[i];
    v=v+1;
}
for (i=0; i<=v-1; i++) printf("%4d",e[i]);
system ("pause");
вроде бы всё верно......Помогите Пожалуйста..
In4ekk вне форума Ответить с цитированием
Старый 06.12.2010, 15:13   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А можно узнать полностью задание?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2010, 20:04   #8
In4ekk
Пользователь
 
Аватар для In4ekk
 
Регистрация: 19.10.2010
Сообщений: 13
По умолчанию

Заполнить два массива, размером 40 и 30 элементов, соответственно,
случайными целыми числами в диапазоне от –50 до 50. Из полученных двух
массивов создайте два массива отдельно, один из которых содержит числа от –
10 до 10, а другой – от 20 до 50. Проведите сортировку полученных массивов
по возрастанию. Для контроля результата сделайте распечатку массивов, в том
числе исходного.
In4ekk вне форума Ответить с цитированием
Старый 06.12.2010, 20:34   #9
In4ekk
Пользователь
 
Аватар для In4ekk
 
Регистрация: 19.10.2010
Сообщений: 13
По умолчанию

поняла:

printf("Ob'edinenie massivov C i D \n");
int e[T]; int v = 0;

for (i=0; i<=k-1; i++)
{
e[v] = c[i];
v=v+1;
}
for (i=0; i<=l-1; i++)
{
e[v] = d[i];
v=v+1;
}
for (i=0; i<=v-1; i++) printf("%4d",e[i]);
system ("pause");
In4ekk вне форума Ответить с цитированием
Старый 06.12.2010, 20:56   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Всего-то?

Предлагаю такое:
Код:
// werwre.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdlib.h>
#include <algorithm>

int compare( const void *a, const void *b )
{
   /* Compare all of both strings: */
   return *(int*)a - *(int*)b;
}


int _tmain(int argc, _TCHAR* argv[])
{
	const int n=40,m=30;
	int a[n],b[m],c[n],d[n],q=0,w=0;
	for(int i=0;i<n;i++){
		a[i]=50-rand()%100;printf("%d\t",a[i]);
		if(a[i]>=-10&&a[i]<=10) c[q++]=a[i];
		if(i<m) { 
			b[i]=50-rand()%100;printf("%d",b[i]);
			if(b[i]>=-20&&a[i]<=50) d[w++]=b[i];
		}
		printf("\n");
	}
	// Сортировка
	qsort(c, (size_t)q, sizeof( int * ), compare );
	qsort(d, (size_t)w, sizeof( int * ), compare );
	// Вывод
	for(int i=0;i<q;i++){printf("%d\n",c[i]);}printf("\n");
	for(int i=0;i<w;i++){printf("%d\n",d[i]);}printf("\n");
	getchar();
	return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы Кирилл17 Помощь студентам 2 07.12.2008 21:08