Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Антон2659
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 58
1

Какая допущена ошибка?

06.12.2016, 16:34. Просмотров 255. Ответов 8
Метки нет (Все метки)

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
# include < string.h >
# include <stdio.h  >
# include <conio.h >
# include <locale.h>
# define m 30
# define n 9
int main()
{
    int  i, j = 0, x;
    char A[m][n], B[m][n], c = 's', st[] = "eeeee";
    printf("\n введи  последовательность ");
    i = 0;  while (c != '.') {
        scanf_s("%[^,.] ", &A[i]); scanf_s("%c ", &c); i++;
    }
    for (i = x, i = 0; i < x; i++)
        if (strstr(A[i], st) != NULL)
        {
            B[j] = A[i]; j++; /* <--- */
        }
 
    printf("\n ");
    for (x=j, j=0;  j<x ; j++)
        printf(" %s  ", B[j]);
    _getch();
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2016, 16:34
Ответы с готовыми решениями:

Подскажите пожалуйста с чем в коде допущена ошибка
Добрый вечер. Язык только осваиваю, с одномерными массивами разабрался...

Какая ошибка?
Составить программу для приближенного вычисления значения функции в точке х с...

Выяснить, какая последовательность, убывающая или возрастающая. В чем ошибка?
Задача: Выяснить какая последовательность, убывающая или возрастающая. Выдает...

Какая ошибка допущена в цикле?
Определить местоположение элементов массива А (30), не встречающихся в массиве...

Какая ошибка допущена в следующем фрагменте программы:
...... int k=0; float m=k+2; switch(m%2) {case 0: cout&lt;&lt;&quot;m-...

8
long399
152 / 152 / 93
Регистрация: 16.10.2013
Сообщений: 736
Записей в блоге: 3
06.12.2016, 16:46 2
Цитата Сообщение от Антон2659 Посмотреть сообщение
char A[m][n]
У вас это двумерный массив. Также как и массив B.
Например вот так скомпилируется:
C
1
B[j][0] = A[i][0]; j++;
0
Антон2659
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 58
06.12.2016, 16:48  [ТС] 3
я хочу его использовать как одномерный подмассив
0
long399
152 / 152 / 93
Регистрация: 16.10.2013
Сообщений: 736
Записей в блоге: 3
06.12.2016, 16:55 4
Цитата Сообщение от Антон2659 Посмотреть сообщение
я хочу его использовать как одномерный подмассив
тогда и объявляйте его как одномерный массив, а не двумерный

Цитата Сообщение от Антон2659 Посмотреть сообщение
char A[m][n], B[m][n]
это объявление двумерного массива у вас.

Если использовать как одномерный подмассив, то второй индекс массива все-равно указывать нужно.
0
Антон2659
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 58
06.12.2016, 17:07  [ТС] 5
Ошибку выдает при тестировании
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# include < string.h >
# include <stdio.h  >
# include <conio.h >
# include <locale.h>
# define m 30
# define n 9
int main()
{
    int  i, j = 0, x;
    char A[m][n], c = 's', st[] = "eeeee";
    printf("\n введи  последовательность ");
    i = 0;  while (c != '.') {
        scanf_s("%[^,.] ", &A[i]); scanf_s("%c ", &c); i++;
    }
    printf("\n ");
    for (x = i, i = 0; i < x; i++)
        if (strstr(A[i], st) != NULL)
            printf(" %s ", A[i]);
 
    _getch();
    return 0;
}
0
long399
152 / 152 / 93
Регистрация: 16.10.2013
Сообщений: 736
Записей в блоге: 3
06.12.2016, 17:22 6
Цитата Сообщение от Антон2659 Посмотреть сообщение
Ошибку выдает при тестировании
Вы так и не исправили как я подсказал массив. он у вас объявлен как двумерный, а вы обращаетесь к нему как к одномерному. Зачем называть сына Васей, а потом звать его Петей?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4848 / 2492 / 696
Регистрация: 18.10.2014
Сообщений: 4,321
06.12.2016, 21:05 7
Цитата Сообщение от Антон2659 Посмотреть сообщение
я хочу его использовать как одномерный подмассив
Голые массивы в С и С++ невозможно присваивать друг другу. Если вы хотите скопировать один одномерный подмассив в другой - используйте memcpy или strcpy или явный цикл.

У вас также неправильно используется функция scanf_s. Либо читайте документацию на scanf_s, либо используйте обычный scanf.

Распространенные ошибки
Распространенные ошибки
0
Антон2659
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 58
07.12.2016, 15:15  [ТС] 8
Вот теперь вроде бы работает, но ничего не выводит если пустая строка
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
# include < string.h >
# include <stdio.h  >
# include <conio.h >
# include <locale.h>
# define m 30
# define n 9
int main()
{
    setlocale(LC_ALL, "Rus");
    int  i, j = 0, x;
    char A[m][n], B[m][n], c = 's', st[] = "eeeee";
    printf("\n Bведи  последовательность ");
    i = 0;  while (c != '.') {
        scanf_s("%[^,.] ", &A[i], 9); scanf_s("%c ", &c); i++;
    }
    printf("\n ");
    for (x = i, i = 0; i <= x; i++)
        if (strstr(A[i], st) != NULL) {
            strcpy_s(B[j], A[i]); j++;
        }
    if (B[0]=="") printf("%d", j); else {
    for (x = j, j = 0; j < x; j++)
        printf("%s ", B[j]);
}
    _getch();
    return 0;
}
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4848 / 2492 / 696
Регистрация: 18.10.2014
Сообщений: 4,321
07.12.2016, 16:40 9
Цитата Сообщение от Антон2659 Посмотреть сообщение
scanf_s("%c ", &c);
...
strcpy_s(B[j], A[i]);
Опять те же ошибки.
0
07.12.2016, 16:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2016, 16:40

Допущена ошибка
Программа запрашивает широту в градусах, минутах и секундах, после чего...

Где допущена ошибка?
clc clear all syms x y=sin(x)-2.*cos(x) j=int(y,-2,2) double(j) При...

Где допущена ошибка?
База данных учета автомобилей. Управление: Enter - добавление записи в базу....


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

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

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