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

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

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

Массивы - C++

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

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


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

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

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

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

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

Массивы структур, массивы векторов - C++
Разработайте тип данных «Вектор в трехмерном пространстве» в виде структуры, поля которой — координаты вектора. Напишите следующие функции:...

Массивы структур и массивы строк - C++
1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте. 2. Распечатать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
1646 / 1274 / 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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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();
}
Лёша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]

не компилит..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 19:07
Привет! Вот еще темы с ответами:

Массивы структур и массивы строк - C++
Здравствуйте. Возникла проблема с одной работой: Постановка задачи: 1. Сформировать динамический массив из элементов структурного типа....

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...

индексные массивы и адресные массивы - C++
погитите решить задачу c массивами двумя способами {индексные и адресные} { Вычислить суммы элементов каждой строки матрицы Х(20х20),...


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

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

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