Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Myrbm
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 20
#1

задачи на текст и массивы - C++

09.04.2009, 20:04. Просмотров 750. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста с лабораторкой. Я больше по Паскалю, а в Си плаваю, и очень мелко...

1. Ввести с клавиатуры предложение. Удалить из него слово, номер которого задаст пользователь. Если слов меньше, оповестить об ошибке.

2. Сформировать массив из 50 случайных чисел которые входят в промежуток А..В.
Распечатать его, потом удалить из него нечетные элементы (со сдвигом), снова распечатать и указать, сколько элементов удалено
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2009, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задачи на текст и массивы (C++):

Задачи на массивы в С++ - C++
Здравствуйте, помогите пожалуйста с решением 2 задач: 1. Даны целые числа a1, ..., a30. Все члены последовательности с четными...

Задачи на массивы - C++
1.дан массив А(11).все элементы этого массива из интервала (с,d) обнулите,найдите сумму остальных. 2.Дан одномерный массив А. найти...

Задачи на массивы - C++
Помогите написать программы на С++ пожалуйста.

задачи на C++, на массивы - C++
дана такая задача: дан линейный массив А, состояий из N элементов. Составить прорграмму удаления в массиве всех элементов, значения...

Задачи на массивы - C++
Здравствуйте, многоуважаемые пользователи! Прошу Вас помощи в начинающих заданиях. Не знаю сюда ли пишу. 1. Дан N-элементный...

Массивы(задачи) - C++
Начал изучать язык Си.Не могу решить задачи.Прошу помощи в решении: 1.Дано 2(два) массива из цифр: а)найти сумму б)разность ...

7
sigmaalgebra
9 / 9 / 0
Регистрация: 15.03.2009
Сообщений: 76
09.04.2009, 21:34 #2
Могу простенький вариант, немного глуповатый но чем могу...
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
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
//Задание строки с клавы, корявое правда... 
      char str[255];
      char rez_str[255];
      int i=0,n=0,kol_vo_probelov=0,num=0,dlina++;
      char c=0;
     while(c!=13)//кажется 13 код ENTER
     {
           c=getch();
           if(c=='\n') break;
           else
           str[i]=c;i++;dlina++;
           if(c==' ' && (i>0 &&str[i-1]!=' ') || (c==' ' && i==0))kol_vo_probelov++;
     }
     cout<<"VVedite nomer slova";
     cin>>n;
     if(kol_vo_probelov<n)cout<<"ILLEGAL NUMBER\n";
     else
     {
         i=0;
//Ищем n-е слово
         while(num<n)
         {
            rez_str[i]=str[i];
            if(str[i]==' ')num++;
            i++;
         }
         c=str[i];
//Пропускаем слово
         while(c!=' ')
         {
            c=str[i];i++;
         }
         while(i<dlina)
        { rez_str[i]=str[i];i++;}
     }
return 0;
}
Добавлено через 1 минуту 29 секунд
Ну я этот код правда не тестила...Но должно работать, правда если подряд несколько пробелов там надо кусок их пропускающий вставить..Но примерно так)

Добавлено через 3 минуты 40 секунд
По поводу второго. Есть в Си в библиотеке math кажется функция rand(), параметры у нее число,до которого генерировать случ числа от нуля. Поэтому чтобы сгенерировать от А до в Это так:
chislo=A+rand(В). 50 раз в цикле. нечетные- значит при деоении на два остаток не нулевой, те chislo%2!=0. Тогда удаляешь, ну а дальше идея то и как в Паскале реализовывается, на этом отличия вроде заканчиваются.
0
Monte-Cristo
2793 / 1379 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
09.04.2009, 21:48 #3
только предварительно, желательно прописать
srand(time(0)); иначе числа будут не случайными, а машинозависимыми...
и скгенирировать от А до В выглядит так

int C = A+rand()%(B-A);
0
Myrbm
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 20
09.04.2009, 22:53  [ТС] #4
Большое спасибо, конечно... Но я ж говорю - мелко плаваю... Если можно, плиз, полный тест проги. А то я в первом не смог разобраться с вводом - не читает оно почему-то. Ну дуб я, дуб...
0
Gravity
566 / 560 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
10.04.2009, 16:20 #5
По первой.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
 
#define MAXLINE 80
#define MAXWORDS 40
int addword(char *[], char *);
void printl(char *[], int);
 
main()
{
      int nwords = 0, delnum;
      char *line, word[MAXLINE], *wordsptr[MAXWORDS];
      
      /* выделение памяти под предложение */
      if( (line = (char *)malloc(MAXLINE)) == NULL) {
         printf("error: can't allocate memory for line\n");
         getch();
         return 1;
      }
      /* читаем строку */
      if(fgets(line, MAXLINE, stdin) == NULL)
         return 1;
      /* разбиваем строку на слова */
      while(sscanf(line, "%s", word) != EOF) {
         line = strstr(line, word);   /* пропуск символов-разделителей перед словом */
         line += strlen(word);
         while(isspace(*line))   /* пропуск символов-разделителей после считанного слова */
            line++;
         nwords += addword(wordsptr, word);
      }
      /* удаление заданного слова */
      printf("Enter number of word to delete: ");
      scanf("%d", &delnum);
      if(delnum > 0 && delnum <= nwords)
         wordsptr[delnum-1] = NULL;
      else
         printf("error: word #%d not exist\n", delnum);
      
      /* печать предложения */
      printl(wordsptr, nwords);
      
      getch();
      return 0;
}
 
/* добавляет слова в массив указателей */      
int addword(char *wordsptr[], char *w)
{
    static int nw = 0;
    char *p;
    
    if(nw >= MAXWORDS) {
       printf("error: wordsptr: buffer overflow\n");
       return 0;
    }
    if( (p = (char *)malloc(strlen(w))) == NULL) {
       printf("error: can't allocate memory for %s\n", w);
       return 0;
    }
    strcpy(p, w);
    wordsptr[nw++] = p;
    return 1;
}
 
/* печать предложения */
void printl(char *wordsptr[], int lim)
{
    while(lim-- > 0)
       if(*wordsptr != NULL)
          printf("%s ", *wordsptr++);
       else
          wordsptr++;
}
Скомпилированный экзешник.
0
Вложения
Тип файла: rar words.rar (6.6 Кб, 12 просмотров)
sigmaalgebra
9 / 9 / 0
Регистрация: 15.03.2009
Сообщений: 76
10.04.2009, 20:14 #6
srand- для меня что-то новое) Вот randomize() сразу после маин знаю)
0
Monte-Cristo
2793 / 1379 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
10.04.2009, 20:19 #7
randomize - это паскаль... в СИ++ srand(time(0)); обычно используется...
0
Myrbm
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 20
13.04.2009, 22:42  [ТС] #8
Большое спасибо за решения, но не мог би кто-то решить еще и 2 задачу?? оч надо, плиз...
0
13.04.2009, 22:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2009, 22:42
Привет! Вот еще темы с ответами:

Задачи на массивы С++ - C++
1)решить двумя способоми, сначала используя одномерный массив а потом двумерный.( и только с помощьюь массивов,никак по другому) ...

Массивы - задачи - C++
http://www.ii4.ru/images/7078611.JPG http://www.ii4.ru/images/1839532.JPG задачи на C++ срочно нужно знакомому...

Задачи на файлы и массивы - C++
1) Программа сортировки массива с использованием функций и заголовочного файла 2) Чтение массива из текстового файла и запись его в...

Задачи массивы( объяснение) - C++
Здравствуйте,не могли бы помочь в написании кода и обьяснить некоторые подробности есть несколько типов задач, по массивам которые...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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