[реклама вместо картинки]
Сделать стартовой Добавить в Избранное
Часы в заголовке окна

Форум студентов МГУ Печати ФИТиМ ИТД

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум студентов МГУ Печати ФИТиМ ИТД » Архив » Информатика (Сессия. I семестр)


Информатика (Сессия. I семестр)

Сообщений 301 страница 320 из 324

301

А вот более правильное решение той же задачи:

#include "stdafx.h"
#include <stdio.h>

void del(char *s, char *d)
{
    int i = 0, j = 0;
   
    while (s[i])
    {
        /* копируем пробелы */
        while (s[i] == ' ')
            d[j++] = s[i++];

        /* копируем первое слово */
        while (s[i] != ' ' && s[i] != 0)
            d[j++] = s[i++];

        /* копируем пробелы */
        while (s[i] == ' ')
            d[j++] = s[i++];

        /* пропускаем второе слово */
        while (s[i] != ' ' && s[i] != 0)
            i++;
    }

    d[j] = 0;
}

int main(void)
{
    char s[100], d[100];
    gets(s);
    del(s,d);
    printf(d);
    return 0;
}

0

302

Хех, занятные способы решения, точнее, циклы... Я бы ни до первого, ни до второго варианта за час-полтора никак бы не додумался...  :huh:

0

303

Kit написал(а):

Хех, занятные способы решения, точнее, циклы... Я бы ни до первого, ни до второго варианта за час-полтора никак бы не додумался...

Если честно,я и сейчас не до конца поняла решения этой задачи.. :(

0

304

Сергей Юрьевич, imo, практика показала, что эта задачка была несколько неравносильна своему аналогу из другого варинта, а так же и остальным, что вы давали на подготовку...  :(  :huh:

0

305

Kit написал(а):

Сергей Юрьевич, imo, практика показала, что эта задачка была несколько неравносильна своему аналогу из другого варинта, а так же и остальным, что вы давали на подготовку...

Гм-гм, а она чем-то существенно отличается от предыдущих задач, в которых "дана строка, состоящая из слов, разделённых пробелами"?

Вот ещё, кстати, вариант решения :-)

#include "stdafx.h"
#include <stdio.h>

void del(char *s, char *d)
{
    int i = 0, j = 0, k = 0;
   
    while (s[i])
    {
        /* копируем пробелы */
        while (s[i] == ' ')
            d[j++] = s[i++];

        if (s[i])
        {
            k++; /* увеличиваем счётчик слов */

            if (k % 2 == 1)
            {
                /* "нечётное" слово копируем */
                while (s[i] != ' ' && s[i] != 0)
                    d[j++] = s[i++];
            }
            else
            {
                /* "чётное" слово пропускаем */
                while (s[i] != ' ' && s[i] != 0)
                    i++;
            }
        }
    }

    d[j] = 0;
}

int main(void)
{
    char s[100], d[100];
    gets(s);
    del(s,d);
    printf(d);
    return 0;
}

Укажите, в каком месте непонятно: я попробую объяснить :-)

0

306

Ой, а можно ещё и вот так сделать:

#include "stdafx.h"
#include <stdio.h>

void del(char *s, char *d)
{
    int i = 0, j = 0, k = 0;
   
    while (s[i])
    {
        /* копируем пробелы */
        while (s[i] == ' ')
            d[j++] = s[i++];

        if (s[i])
        {
            k++; /* увеличиваем счётчик слов */

            while (s[i] != ' ' && s[i] != 0)
            {
                if (k % 2 == 1)
                    d[j++] = s[i++];
                else
                    i++;
            }
        }
    }

    d[j] = 0;
}

int main(void)
{
    char s[100], d[100];
    gets(s);
    del(s,d);
    printf(d);
    return 0;
}

0

307

[реклама вместо картинки]
я ведь почти решила........1ым Вашим вариантом((((...а теперь....вот теперь я домой не поехала из-за еще одной пересдачи , билет сдала, который на 30е брала(((((((:cray: ...мне ведь  оставалось только скобочки расставить.....и время еще было((:cray:

0

308

[реклама вместо картинки]

0

309

Скоробогатов написал(а):

Гм-гм, а она чем-то существенно отличается от предыдущих задач, в которых "дана строка, состоящая из слов, разделённых пробелами"?

На мой взгляд, да.

0

310

Kit написал(а):

На мой взгляд, да.

Присоединяюсь... :(

0

311

Кузя написал(а):

Присоединяюсь...

И я!
Тем более, что мне вообще очень тяжело в этом всём разбираться, я не технарь, а художник(((

Отредактировано AuburnDevil (2007-01-31 19:20:01)

0

312

Скоробогатов написал(а):

Вот так:

А вот более правильное решение той же задачи:

Вот ещё, кстати, вариант решения :-)

Ой, а можно ещё и вот так сделать:

:rofl:

0

313

ё блин, Светк как ваще всё ???у меня инет дома страшн тормозит...:\ жесть! вот прчитала тут... бедняг!!! а чё скобки-т сраз не ставила?!? :blink:
сраз со скобами даж и писать задачку пнятней!  :yes:
так вть Сергей Юрич!!!))) я-т сдала, терь крутая тип, советы даю... :D

0

314

Nasturciya, да там не тока скобачки..запятые всякие..ну вопщем были только синтаксические ошибки((((((

0

315

Специально для AuburnDevil.
Решение задачи N24.

Дан целочисленный массив размера 6. Составить программу, заменяющую нулями те элементы массива, десятичная запись которых состоит из одинаковых цифр (включая однозначные числа).

#include "stdafx.h"
#include <stdio.h>

void replace(int A[6])
{
    int i, n, d;
    for (i = 0; i < 6; i++)
    {
        n = A[i];
        d = n % 10;

        while (n != 0 && n % 10 == d)
            n /= 10;

        if (n == 0)
            A[i] = 0;
    }
}

int main(void)
{
    int A[6], i;

    for (i = 0; i < 6; i++)
        scanf("%d",&A[i]);

    replace(A);

    for (i = 0; i < 6; i++)
        printf("%d ",A[i]);

    return 0;
}

0

316

Однако.  :huh:

Хотя первые две строчки основного цикла у меня были идентичны!..  :D

0

317

Спасибо! Однако, как иногда люди усложняют себе задачу.... :huh:

0

318

:huh:

0

319

я наконец-то сдала! с 4-го раза!

0

320

а есть юди кто еще не сдал?

0


Вы здесь » Форум студентов МГУ Печати ФИТиМ ИТД » Архив » Информатика (Сессия. I семестр)