Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/32: Рейтинг темы: голосов - 32, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 18.12.2007
Сообщений: 5

Нахождение общих элементов двух массивов

18.12.2007, 12:34. Показов 6262. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дали задачу на курсовую, а я в С++ вообще балда, помогите задачку написать, плз!
Условие такое:
Нахождение общих элеменвто двух массивов.
Для двух массивов различной размерности найти элементы имеющие одинаковое значение и одинаковое по модулю значение. Вывести результаты на экран и записать в файл "output.txt".
Помогите, пожалуйста, буду очень благодарна.:'(:'(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2007, 12:34
Ответы с готовыми решениями:

Создать массив из общих элементов двух массивов
Здравствуйте!!!! Помогите, пожалуйста, с задачкой : Даны два массива: А и B , на основе которых следует создать новый массив, ...

Работа с массивами в С++ . Поиск общих элементов двух массивов
Здравствуйте! Есть такой у меня код . #include "stdafx.h" #include <iostream> #include <conio.h> #include <fstream> ...

Функция вывода на экран всех общих элементов двух одномерных массивов
Доброй ночи. Пожалуйста помогите:cry: Начали новую тему, но не могу понять, какой нужно написать алгоритм. Задача: Функция...

16
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.12.2007, 12:56
это точно задание на курсовую? по-моему, лаба обычная, позже по свободе наваяю
0
0 / 0 / 0
Регистрация: 18.12.2007
Сообщений: 5
18.12.2007, 16:44  [ТС]
Ну я первый курс. Да, задание на курсовую. Мне ещё уже в четверг сдавать, а я ещё ничего не делала...:huh:
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.12.2007, 18:07
ну что-то вроде этого....
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <math.h>
#include <stdio.h>
int main()
{
   int *arr1;
   int *arr2;
   int n = 0, k = 0;
   std::cout << "Enter razmer first array!" << std::endl;
   std::cin >> n;
   arr1 = new int[n];
   std::cout << "Enter array!" << std::endl;
   for(int i = 0; i < n; i++) std::cin >>arr1[i];
   std::cout << "Enter razmer second array!" << std::endl;
   std::cin >> k;
   arr2 = new int[k];
   std::cout << "Enter array!" << std::endl;
    FILE *stream;
    stream = fopen("Out.txt", "w+");
   for(int i = 0; i < k; i++) std::cin >>arr2[i];
   // Vivod
   printf("Result:\n");
   fprintf(stream, "Result:\n");
   printf(" eql:\n");
   for(int i = 0; i < n; i++){
      for(int j = 0; j < k; j++){
        if(arr1[i] == arr2[j]){
          printf("  a1[%d] = a2[%d]\n", i, j);
          fprintf(stream, "  a1[%d] = a2[%d]\n", i, j);
        }
      }
   }
   printf(" abs:\n");
   fprintf(stream, "abs:\n");
   for(int i = 0; i < n; i++){
      for(int j = 0; j < k; j++){
        if(abs(arr1[i]) == abs(arr2[j])){
          printf("  a1[%d] = a2[%d]\n", i, j);
          fprintf(stream, "  a1[%d] = a2[%d]\n", i, j);
        }
      }
    }
    fclose(stream);
   return 0;
}
0
0 / 0 / 0
Регистрация: 18.12.2007
Сообщений: 5
18.12.2007, 19:14  [ТС]
ПАСИБО золотой ты мой!! чмок чмок тебя....покажу своему преподу...
0
0 / 0 / 0
Регистрация: 18.12.2007
Сообщений: 5
20.12.2007, 14:10  [ТС]
извините, а не могли бы вы мне ещё помочь. Препод говорит программа писана на С++ а надо на С. Если есть свободное время, помогите пожалуйста.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.12.2007, 14:22
Цитата Сообщение от Лена Посмотреть сообщение
извините, а не могли бы вы мне ещё помочь. Препод говорит программа писана на С++ а надо на С. Если есть свободное время, помогите пожалуйста.
а можно просветить, в чем же их отличия? что нельзя использовать?
0
 Аватар для ./run
38 / 9 / 6
Регистрация: 06.12.2007
Сообщений: 132
20.12.2007, 19:06
Думаю имеется ввиду, что нужно заменить cin и cout на scanf и printf.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
21.12.2007, 09:38
ну тогда вот тебе другой вариант, хотя могла бы и сама заменить, все-таки на программера учишься:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <math.h>
#include <stdio.h>
int main()
{
   int *arr1;
   int *arr2;
   int n = 0, k = 0;
   printf("Enter razmer first array:");
   scanf("%d", &n);
   arr1 = new int[n];
   printf("\nEnter array:\n");
   for(int i = 0; i < n; i++) scanf("%d", &arr1[i]);
   printf("\nEnter razmer second array:");
   scanf("%d", &k);
   arr2 = new int[k];
   printf("\nEnter array:\n");
   for(int i = 0; i < k; i++) scanf("%d", &arr2[i]);
    FILE *stream;
    stream = fopen("Out.txt", "w+");
   // Vivod
   printf("Result:\n");
   fprintf(stream, "Result:\n");
   printf(" eql:\n");
   for(int i = 0; i < n; i++){
      for(int j = 0; j < k; j++){
        if(arr1[i] == arr2[j]){
          printf("  a1[%d] = a2[%d]\n", i, j);
          fprintf(stream, "  a1[%d] = a2[%d]\n", i, j);
        }
      }
   }
   printf(" abs:\n");
   fprintf(stream, "abs:\n");
   for(int i = 0; i < n; i++){
      for(int j = 0; j < k; j++){
        if(abs(arr1[i]) == abs(arr2[j])){
          printf("  a1[%d] = a2[%d]\n", i, j);
          fprintf(stream, "  a1[%d] = a2[%d]\n", i, j);
        }
      }
    }
    fclose(stream);
   return 0;
}
0
118 / 12 / 3
Регистрация: 21.08.2007
Сообщений: 222
23.12.2007, 11:36
Во-первых убрать <iostream> - это приплюснутый инклюд. Во-вторых - убрать оператор new. Для динамического выделения памяти в Си используется malloc(). В-третьих, Си, в отличие от С++, не позволяет обьявить переменную в теле цикла.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
23.12.2007, 13:04
Цитата Сообщение от igor_nf Посмотреть сообщение
Во-первых убрать <iostream> - это приплюснутый инклюд. Во-вторых - убрать оператор new. Для динамического выделения памяти в Си используется malloc(). В-третьих, Си, в отличие от С++, не позволяет обьявить переменную в теле цикла.

я в глаза не видел компиляторов по си, у меня с++-компилер, вот и проги такие же... а на счет нет new, ты утверждаешь, что на си не было статических массивов?
0
118 / 12 / 3
Регистрация: 21.08.2007
Сообщений: 222
24.12.2007, 12:15
Цитата Сообщение от WooDooMan666 Посмотреть сообщение
я в глаза не видел компиляторов по си, у меня с++-компилер, вот и проги такие же... а на счет нет new, ты утверждаешь, что на си не было статических массивов?
new - это средство выделения памяти, которое имеет отношение только к С++ (в Сях такого нет). У Страуструпа это написано. Далее по поводу классов памяти. Может у нас разное понимание вещей... Статический класс памяти - количество блоков необходимой памяти заранее известно и может быть вычислено компилятором в момент компиляции. Блоки располагаются в специальной секции программы, которая называется секцией данных. Так это выглядит в Си:

Code
1
static char arr[1024];      //    резервирует килобайт в секции .data
Динамический класс памяти - количество блоков памяти заранее неизвестно и станет известно только в момент выполнения программы. Для этого, если мы пишем на Си - используем malloc(), а если мы пишем на C++ - используем new[]. Достоверной разницы в механизмах работы этих средств я не знаю, но Страуструп пишет, что если есть возможность использовать new, то лучше использовать new вместо malloc().

К теме: поэтому, если ты используешь new - у тебя сиплюснутый код, но не сишный.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.12.2007, 16:27
Цитата Сообщение от igor_nf Посмотреть сообщение
new - это средство выделения памяти, которое имеет отношение только к С++ (в Сях такого нет). У Страуструпа это написано. Далее по поводу классов памяти. Может у нас разное понимание вещей... Статический класс памяти - количество блоков необходимой памяти заранее известно и может быть вычислено компилятором в момент компиляции. Блоки располагаются в специальной секции программы, которая называется секцией данных. Так это выглядит в Си:

Code
1
static char arr[1024];      //    резервирует килобайт в секции .data
Динамический класс памяти - количество блоков памяти заранее неизвестно и станет известно только в момент выполнения программы. Для этого, если мы пишем на Си - используем malloc(), а если мы пишем на C++ - используем new[]. Достоверной разницы в механизмах работы этих средств я не знаю, но Страуструп пишет, что если есть возможность использовать new, то лучше использовать new вместо malloc().

К теме: поэтому, если ты используешь new - у тебя сиплюснутый код, но не сишный.

понятно, ну тогда переделаю под си, спасибо за информацию...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.12.2007, 16:36
Надеюсь, это уже больше похоже на си:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
   int *arr1;
   int *arr2;
   int n = 0, k = 0;
   printf("Enter razmer first array:");
   scanf("%d", &n);
   arr1 = (int*) malloc(n * sizeof(int));
   printf("\nEnter array:\n");
   for(int i = 0; i < n; i++) scanf("%d", &arr1[i]);
   printf("\nEnter razmer second array:");
   scanf("%d", &k);
   arr2 = (int*) malloc(k * sizeof(int));
   printf("\nEnter array:\n");
   for(int i = 0; i < k; i++) scanf("%d", &arr2[i]);
    FILE *stream;
    stream = fopen("Out.txt", "w+");
   // Vivod
   printf("Result:\n");
   fprintf(stream, "Result:\n");
   printf(" eql:\n");
   for(int i = 0; i < n; i++){
      for(int j = 0; j < k; j++){
        if(arr1[i] == arr2[j]){
          printf("  a1[%d] = a2[%d]\n", i, j);
          fprintf(stream, "  a1[%d] = a2[%d]\n", i, j);
        }
      }
   }
   printf(" abs:\n");
   fprintf(stream, "abs:\n");
   for(int i = 0; i < n; i++){
      for(int j = 0; j < k; j++){
        if(abs(arr1[i]) == abs(arr2[j])){
          printf("  a1[%d] = a2[%d]\n", i, j);
          fprintf(stream, "  a1[%d] = a2[%d]\n", i, j);
        }
      }
    }
    fclose(stream);
    free(arr1);
    free(arr2);
   return 0;
}
0
Флудер
 Аватар для Ensase
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
19.03.2008, 06:04
Цитата Сообщение от igor_nf Посмотреть сообщение
Си, в отличие от С++, не позволяет обьявить переменную в теле цикла.
в стандарте с99 позволяет.
0
118 / 12 / 3
Регистрация: 21.08.2007
Сообщений: 222
19.03.2008, 15:47
в стандарте с99 позволяет.
Верно, до стандартов то я и не дошёл ).
0
Флудер
 Аватар для Ensase
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
19.03.2008, 20:06
abs - в stdlib.h, так что можно math.h не подключать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2008, 20:06
Помогаю со студенческими работами здесь

Новый массив из общих элементов других массивов
Даны два массива: массив А из n элементов и массив В из m элементов. Сформируйте массив С, состоящий из общих элементов массива А и В. ...

Построить вектор из общих элементов двух векторов
Помогите с написание программы, нет идей вообще :( Задано два вектора действительных чисел х и у, каждый из которых имеет n элементов....

Нахождение общих элементов двух массивов
Здравствуйте . Возникла проблема с нахождением общих элементов 2-х массивов: string mas1 = new string; string mas2...

Найти НОД общих элементов двух массивов
Как найти НОД(наибольший общий делитель) общих элементов массивов .Благодарю за ответ Scanner in = new Scanner(System.in); ...

Написать функцию находящую количество общих элементов двух массивов
Даны два массива целых чисел упорядоченные по невозрастанию. Написать функцию находящую количество общих элементов


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru