Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] массивы 
:(
    Опции темы
girlsbest
Дата 27.10.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



8.    Элементы массива расположить в обратном порядке, не используя дополнительный массив. Написать программу, в которой исходный массив заполнить случайным образом элементами в пределах от 101 до 200. Вывести на экран элементы исходного и полученного массивов.
9.    Написать фрагмент программы для определения, какое из чисел встречается в массиве чаще всего. 
10.    Написать рекурсивную функцию поиска элемента в упорядоченном по убыванию массиве.

задачи вроде не сложные, но сходу не получается... очень нужно решить.

PM MAIL   Вверх
IKM2007
Дата 27.10.2008, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 4
Всего: 40



Тебе в центр помощи, там и решим.


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
girlsbest
Дата 27.10.2008, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



ща перемещусь

Добавлено через 6 минут и 31 секунду
или давай лучше здесь...
PM MAIL   Вверх
IKM2007
Дата 27.10.2008, 20:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 4
Всего: 40



Первая.
Код

#include <iostream>
#include <ctime>
#include <cstdlib>
using std::cout;
using std::endl;
const int n=11;
void main()
{
int  a[n],i,k;
srand((int)time(NULL));
for(i=0;i<n;i++)
    a[i]=101+rand()%100;

for(i=0;i<n;i++)
    cout<<a[i]<<' ';
cout<<endl;

for(i=0;i<n/2;i++)
    {
        k=a[i];
        a[i]=a[n-i-1];
        a[n-i-1]=k;
    }

for(i=0;i<n;i++)
    cout<<a[i]<<' ';
cout<<endl;
}


Это сообщение отредактировал(а) IKM2007 - 27.10.2008, 20:14


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
IKM2007
Дата 27.10.2008, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 4
Всего: 40



Второе.
Код

#include <iostream>
using std::cin;
using std::cout;
using std::endl;
const int n=11;
void main()
{
int  a[n],i,j,max1=0,max2=0,item=0;

for(i=0;i<n;i++)
cin>>a[i];

for(i=0;i<n-1;i++)
{
    max1=0;
    for(j=i+1;j<n;j++)
        if(a[i]==a[j])
            max1++;
    if(max1>max2)
    {    
        max2=max1;
        item=a[i];
    }
}

    cout<<"\nItem="<<item<<endl;
}



--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
eyeofhell
Дата 27.10.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Адепт
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 16.10.2008
Где: Россия, Москва

Репутация: нет
Всего: 1



Примерно вот так ( писалось на скорую руку за 10 минут, проверь )

Код

#include <windows.h>
#include <iostream>

int array[ 11 ] = { 0 };
const int array_len = sizeof( array ) / sizeof( array[ 0 ] );

void task8( void )
{
  std::cout << "source: ";
  for( int index_put = 0; index_put < array_len; index_put ++ )
  {
    array[ index_put ] = 101 + rand() % 101;
    std::cout << array[ index_put ] << " ";
  }
  std::cout << std::endl;

  for( int index = 0; index < array_len / 2; index ++ )
  {
    int index_left = index;
    int index_right = array_len - index - 1;

    int value_left = array[ index_left ];
    array[ index_left ] = array[ index_right ];
    array[ index_right ] = value_left;
  }

  std::cout << "result: ";
  for( int index_get = 0; index_get < array_len; index_get ++ )
  {
    std::cout << array[ index_get ] << " ";
  }
  std::cout << std::endl;
}

void task9( void )
{
  int array_freq[ array_len ] = { 0 };

  for( int index_freq = 0; index_freq < array_len; index_freq ++ )
  {
    for( int index_get = 0; index_get < array_len; index_get ++ )
    {
      if( array[ index_get ] == array[ index_freq ] )
      {
        array_freq[ index_freq ] ++;
      }
    }
  }

  bool max_found = false;
  int index_max = 0;
  for( int index_max_cur = 0; index_max_cur < array_len; index_max_cur ++ )
  {
    if( array_freq[ index_max_cur ] > array_freq[ index_max ] )
    {
      index_max = index_max_cur;
      max_found = true;
    }
    else if( array_freq[ index_max_cur ] < array_freq[ index_max ] )
    {
      max_found = true;
    }
  }

  if( max_found )
  {
    std::cout << array[ index_max ] << " counts " << array_freq[ index_max ]
              << " times" << std::endl;
  }
  else
  {
    std::cout << "no element in array that counts most" << std::endl;
  }
}

void task10( int to_find, int index_left, int index_right )
{
  if( to_find == array[ index_left ] )
  {
    std::cout << "found " << to_find << " at index " << index_left
              << std::endl;
    return;
  }

  if( index_left == index_right )
  {
    std::cout << to_find << " not found" << std::endl;
  }

  int index_center = index_left + ( index_right - index_left + 1 ) / 2;
  if( to_find > array[ index_center ] )
  {
    task10( to_find, index_left, index_center - 1 );
  }
  else
  {
    task10( to_find, index_center, index_right );
  }
}

void main( void )
{
  task8();

  task9();

  std::cout << "sorted: ";
  int initial = 152;
  for( int index_put = 0; index_put < array_len; index_put ++ )
  {
    array[ index_put ] = initial;
    std::cout << array[ index_put ] << " ";
    initial --;
  }
  std::cout << std::endl;

  task10( 150, 0, array_len - 1 );

  std::cin.get();
}

PM MAIL ICQ   Вверх
IKM2007
Дата 27.10.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 4
Всего: 40



Третье.
Код

int sch(int arr[],int x1,int x2,int value)//arr-твой отсортированный массив,x1-первый индекс,x2-второй
//индекс, value-искомый элемент
{
int index;
if(x1>x2)
index=-1;
else
{
int mid=(x1+x2)/2;
if(value==arr[mid])
index=mid;
else if(value>arr[mid])
index=sch(arr,x1,mid-1,value);
else
index=sch(arr,mid+1,x2,value);
}
return index;
}

в мейне вызываешь так.
Код

void main()
{
    int  a[n]={11,10,9,8,7,6,5,4,3,2,1};

cout<<sch(a,0,n-1,7)<<endl;
}



--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
girlsbest
Дата 27.10.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



спасибо огромное ...очень помогли)просто завтра контрольная...я все остальное сама решила а на эти уже сил не хватает))) smile  smile  smile  smile  smile  smile  smile  smile  smile  smile .
PM MAIL   Вверх
Nuha
  Дата 30.10.2008, 16:55 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.10.2008
Где: Украина!

Репутация: нет
Всего: нет



А не подскажете как в MS Studio 2005 числа разбивать на цифры? 
Например, пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран

Добавлено через 1 минуту и 2 секунды
 Или так.  Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.
PM MAIL WWW ICQ   Вверх
heops
Дата 30.10.2008, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



Nuha, 
// 4_2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
    int a,b,c,sum;//объявляем переменные
    cout<<"\t\tSumma tsifr chisla\n\n\n";
    cout<<"vvedite chislo :";//приглашение ввести число
    cin>>a;//ожидание ввода числа
    cout<<"\n\nsumma tsifr chisla :"<<a<<" sostavlyaet : ";
    b=c=sum=0;//инициализация переменных
    for(;a>=1;)//проверяем условие цикла
    {
        b=a/10;//создаем и удаляем дробную часть
        b=b*10;//создаем число (b) которое отличается от (а) регистром единиц
        c=a-b;//узнаем кол-во единиц в (а), и присваиваем их (с)
        sum=sum+c;//
        a=b/10;
    }
    cout<<sum;
    cout<<"\n\n\n";
}

Nuha,

Добавлено через 1 минуту и 19 секунд
Nuha, // 4_3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
    int a,b,c;
    b=c=0;
    cout<<"\t\tREVERS\n\n";
    cout<<"Vvedite chislo\n\n:";
    cin>>a;
    cout<<"\n\n";
    cout<<"revers chisla budet :";
    do 
    {
        b=a/10;
        b=b*10;
        c=a-b;
        cout<<c;
        a=b/10;
    }
    while(a>=1);
    cout<<"\n\n\n";
}

Добавлено через 2 минуты и 11 секунд
Цитата
Типа так?


PM MAIL   Вверх
Nuha
  Дата 30.10.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.10.2008
Где: Украина!

Репутация: нет
Всего: нет



Большое спасибо!!! smile

Добавлено через 1 минуту и 35 секунд
А вот еще! 
Пользователь вводит с клавиатуры число - программа должна показать сколько в данном числе цифр. Число вводится целиком в одну переменную.
Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000.
А вот можно еще и подробно описать, как именно это сделать! smile 
PM MAIL WWW ICQ   Вверх
bsa
Дата 30.10.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 
PM   Вверх
heops
Дата 30.10.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



Nuha, 
наверное в "ШАГе" учичся?

PM MAIL   Вверх
Nuha
Дата 30.10.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.10.2008
Где: Украина!

Репутация: нет
Всего: нет



Да, учусь...Так можете обьяснить, как числа на цифры разбивать? А то я из учебного курса никак не могу понять!!! smile 
PM MAIL WWW ICQ   Вверх
heops
Дата 30.10.2008, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



Nuha, Могу, только к утру, когда сам сделаю
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.