Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Лёша128
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 63
#1

Массивы - C++

25.01.2011, 13:28. Просмотров 359. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста решить 2 задачи на си(Завтра здать нужно.)
Задача 1
Найти в отсортированном в порядке увеличения элементов массиве место для нового заданного элемента
Задача 2
Написать программу, которая угадывает задуманное число в интервале [0,n-1] за n вопросов типа "Ваше число меньше такого-то?"


Надеюсь на вашу помощь. Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2011, 13:28     Массивы
Посмотрите здесь:

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив - C (СИ)
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых чисел. Упорядочить массивы по по убыванию, потом соединить...

Даны массивы A(8), F(8),Q(8). Сформировать массивы С(8), каждый элемент которого вычисляется по формуле - Pascal ABC
uses crt; type mas=array of integer; var A,F,Q,C:mas; i,s:integer; begin clrscr; writeln('Массив первый:'); for i:=1...

Даны массивы а и b. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi= -ai - Pascal
Даны массивы а и b, состоящие из n-элементов каждый. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi=...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы - C#
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил "Запрещено создавать темы с множеством...

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100) - C++
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Заполнить массивы случайными числами, лежащими в интервале 0 до...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
46280
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 26
25.01.2011, 13:53     Массивы #2
Вроде я видел решение подобных тем в Уроках по С++.

ссылка удалена
bobrovskii
58 / 58 / 3
Регистрация: 22.01.2011
Сообщений: 187
25.01.2011, 13:56     Массивы #3
Лёша128, у тебя то есть какие то наработки?
иначе даже не интересно(
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
25.01.2011, 14:17     Массивы #4
не на с, и не за n вопросов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main() {
    int n, min, temp, max;
    char c;
    cout<<"n= ";
    cin>>n;
    max=n;
    min=0;
    temp=(max+min)/2;
    while((temp-min)!=0){
        //cout<<"max= "<<max<<"\nmin= "<<min<<"\n";
        cout<<"Chislo menshe "<<temp<<"?(\'y\', \'n\')";
        cin>>c;
        if(c=='y') max=temp;
        else min=temp;
        temp=(max+min)/2;
    }
    cout<<"\nchislo= "<<min;
}
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
25.01.2011, 15:17     Массивы #5
тоже не за n ходов, на С для разнообразия
C
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
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
 
#define MAX_NUM 100
 
int main(void){
    int guess, cnt, top, bottom;
    char answ;
    
    printf("Make a number less than %d\n", MAX_NUM);
    
    cnt = 0;
    guess = MAX_NUM / 2;
    top = MAX_NUM - 1;
    bottom = 0;
 
    printf("Enter l if your number is less than showed, g if greater, or y if guessed.\n");
    while ( cnt++ < MAX_NUM ){
        
        printf("How about %d? ", guess);
        if ( scanf("%c%*c", &answ) != 1 ){
            fprintf(stderr, "Input error!\n");
            return 1;
        }
        
        switch ( answ ){
            case 'L' :
            case 'l' :
                if ( guess == bottom ){
                    printf("So funny!\n");
                    return 1;
                }
                top = guess;
                guess = ( top + bottom ) / 2;
                break;
            case 'G' :
            case 'g' :
                if ( guess == top ){
                    printf("You true joker!\n");
                    return 1;
                }
                bottom = guess;
                guess += ( top - bottom + 1 ) / 2 ;
                break;
            case 'Y' :
            case 'y' :
                printf("Oh yeah! I just did it for %d steps!\n", cnt);
                return 0;
            default : 
                printf("Wrong command!\n");
                --cnt;
        }
        
    }
 
    printf("I so stupid, can't guess the number!\n");
    return 0;
}
Лёша128
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 63
25.01.2011, 17:36  [ТС]     Массивы #6
а по поводу первой задачи у кого-то есть идеи?
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
25.01.2011, 17:58     Массивы #7
Цитата Сообщение от Лёша128 Посмотреть сообщение
а по поводу первой задачи у кого-то есть идеи?
примерно то же самое, только на каждом шаге у пользователя ничего спрашивать не нужно. первый индекс в массиве для сравнения - половина количества элементов массива. А дальше - если значение для вставки меньше элемента посреди массива - ищем место слева, если больше - справа. Задача сводится к тому, чтобы найти два элемента, первый из которых меньше вставляемого, а второй - больше...
Лёша128
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 63
25.01.2011, 18:36  [ТС]     Массивы #8
Цитата Сообщение от easybudda Посмотреть сообщение
примерно то же самое, только на каждом шаге у пользователя ничего спрашивать не нужно. первый индекс в массиве для сравнения - половина количества элементов массива. А дальше - если значение для вставки меньше элемента посреди массива - ищем место слева, если больше - справа. Задача сводится к тому, чтобы найти два элемента, первый из которых меньше вставляемого, а второй - больше...
Я понимаю, что кажусь глупым первокурсником но я действительно не помню язов языка си. если не трудно покажи как надо
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
25.01.2011, 18:40     Массивы #9
не получается считать массив строк из файла
я токо с паскаля слез, не понимаю эту лексику с
вобщем смотрите че написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void _tmain( )
{
    using namespace std;
    fstream in;
    string s[3];
    int i,x;
 
    in.open("input.txt",ios::in);
    for (i=1;i<=3;i++)
    {
         in.getline(s[i].c_str());//ошибка тут, но как еще эту строку считать?
             }
 
    in.close();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 19:07     Массивы
Еще ссылки по теме:

Файлы. Компоненты - массивы чисел. Переформировать файл, где сначала идут массивы с положительными макс. элементами - Turbo Pascal
Здравствуйте!! я пишу такую задачу: нужно написать две программы, одна из них создает файл, где компоненты - массивы вещ. чисел; ...

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...


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

Или воспользуйтесь поиском по форуму:
Лёша128
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 63
25.01.2011, 19:07  [ТС]     Массивы #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void _tmain( )
{
    using namespace std;
    fstream in;
    string s[3];
    int i,x;
 
    in.open("input.txt",ios::in);
    for (i=1;i<=3;i++)
    {
         in.getline(s[i].c_str());//ошибка тут, но как еще эту строку считать?
             }
 
    in.close();
}
[/QUOTE]

не компилит..
Yandex
Объявления
25.01.2011, 19:07     Массивы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru