Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2013, 20:39   #1
kura007
 
Регистрация: 23.03.2013
Сообщений: 5
По умолчанию Массив строк

Сформировать массив строк. Удалить из него строку начинающуся на букву "а".

помогите найти ошибку в коде.пишет что ошибок нет. но когда начинаю выполнять даёт сбой.

Код:
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <iostream>
#include <stdio.h>
using namespace std;

void main()
{
	char **a,*s,s1[100],m;
	int i=0,n=5,q;
	a=(char**)malloc(0*sizeof(char*));
	s=(char*)malloc(100*sizeof(char));
	for(i=0;i<n;i++)
	{
		a[i]=(char*)malloc(100*sizeof(char));
		puts(a[i]);
	}
	for(i=0;i<n;i++)
	{
		if(a[i][0]-'a'==0)
			q=i;
	}
	for(i=q;i<n;i++)
	{
		s=a[i];
		a[i]=a[i+1];
		a[i+1]=s;
	}
	a=(char**)realloc(a,(n-1)*sizeof(char*));
	printf("izmenenii massiv");
	for(i=0;i<n-1;i++)
		puts (a[i]);
	system("pause");
}
kura007 вне форума Ответить с цитированием
Старый 27.04.2013, 21:07   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <conio.h>
#include <cstdio>
#include <iostream>
#include <cstdlib>

using namespace std;

int
main()
{
    char **a;
    int n = 5;
    a = (char **) malloc(n * sizeof(char *));
    for (int i = 0; i < n; ++i) {
        a[i] = (char *) malloc(100 * sizeof(char));
        gets(a[i]);
    }
    for (int i = n - 1; i >= 0; --i) {
        if(a[i][0] == 'a') {
            free(a[i]);
            --n;
            for (int j = i; j < n; ++j) {
                a[j] = a[j + 1];
            }
        }
    }
    a = (char **) realloc(a, n * sizeof(char *));
    printf("Edited array:\n");
    for(int i = 0; i < n; ++i) {
        puts(a[i]);
        free(a[i]);
    }
    free(a);
    system("pause");
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 27.04.2013, 21:16   #3
kura007
 
Регистрация: 23.03.2013
Сообщений: 5
По умолчанию

не работает. открывается окно ввожу строку жму enter . и ничего не происходит. показывает введённую мною строку и всё
]

Последний раз редактировалось kura007; 27.04.2013 в 21:20.
kura007 вне форума Ответить с цитированием
Старый 27.04.2013, 21:18   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от kura007 Посмотреть сообщение
не работает. открывается окно ввожу строку жму enter . и ничего не происходит. показывает введённую мною строку и всё
А Вы введите 5 строк, нажимая после каждой enter.

UPD
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 27.04.2013 в 21:40.
BDA на форуме Ответить с цитированием
Старый 27.04.2013, 21:22   #5
kura007
 
Регистрация: 23.03.2013
Сообщений: 5
По умолчанию

здорово) работает) спасибо)
kura007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как преобразовать массив строк в массив чисел на C#? orfos Помощь студентам 4 03.10.2014 15:56
Массив строк (си) СергейАС Помощь студентам 0 18.03.2012 13:15
Массив строк Vate Помощь студентам 2 05.01.2011 18:24