Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

topotuno



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

#include<iostream>
#include<string>
char *strcpy( char *dst,char *src);
char** form_massiv(int &n)  
{  
    char **mas=new char*[n];  
    return mas;  
}  
void enterinfo(char** mas,int &n)  
{ int i; char s[50];
std::cout<<"Enter strings:"<<std::endl;
    for ( i=0;i<n;i++)  
    {   std::cin>>s;  
        //gets(s);
        mas[i]=new char[std::strlen(s)+1];  
        strcpy(mas[i],s);      
    }  
}  
void printmas(char** mas,int &n)  
{  int i;
    for (i=0;i<n;i++)  
    {  
        std::cout << mas[i]<<std::endl;
    }  
}  
int deletstrmas(char **mas,int &n)
{ int koludal,nstroki;int i;
    std::cout<<"kol-vo udalaemih "; std::cin>>koludal;
    std::cout<<"So stroki s nomerom ";std::cin>>nstroki;
 
        if( (koludal<0) || (nstroki<1) || ((koludal+nstroki-1)> n) || (koludal>n) ) {std::cout<<"Enter znac bolse zeroo";n=0; return 0;}
 
//    if(((koludal+nstroki)> n) || (koludal>n)) {std::cout<<"oshibka"; return  0;}  
 
 
//for (i=0;i<=n;i++)  
//    { std::cout << mas[i];
//n=n-koludal;
for ( i=0;i<n;i++)  
    { if(i>nstroki )
        
        delete mas[i];  
        //mas[i]='\0';
              
              
              
              
              
            ;//**mas=0;//=new char[strlen(s)+1];  
    //    std::strcpy(mas[i],s);      
    }  
n=n-koludal;
return 0;
}
 
 
char ** delaallmas(char **mas,int &n)
{
int koludal,nstroki; int i;
    std::cout<<"kol-vo udalaemih "; std::cin>>koludal;
    std::cout<<"So stroki s nomerom "; std::cin>>nstroki;
//    if( koludal<0 || nstroki<=0 ) {std::cout<<"Enter znac bolse zeroo"; return 0;}
//    if()
//    if(((koludal+nstroki)> n) || (koludal>n)) {std::cout<<"oshibka"; return  0;}  
 
//for (i=0;i<=n;i++)  
//    { std::cout << mas[i];
//n=n-koludal;
int counter=0;
//int counter2=0;
char **newmas= new char*[n];
 
for ( i=0;i<n;i++) {  
if((i+1)>=nstroki )//|| koludal==0)  
    //for(counter=0; i<nstroki && koludal!=0  ;counter++)
{     newmas[counter]=new char [std::strlen(mas[i])+1];
    strcpy(newmas[counter],mas[i]); //counter++;//counter2++; delete mas[i];
    }
 //else continue;        ;//**mas=0;//=new char[strlen(s)+1];  
    //    std::strcpy(mas[i],s);
//else     {koludal--;
//else mas[i]='\0';
//n--;} }
delete mas[i];
}
return newmas;
}
void main()  
{  
    int size; char** masA;  
    std::cout << "Enter size= ";  
    std::cin >> size;  
    //Формирование массива  
   masA = form_massiv(size);  
    //Ввод элементов  
    enterinfo(masA,size);  
    //Вывод массива  
        std::cout <<std::endl;
    std::cout << "Massiv:" << std::endl;  
    printmas(masA,size);  
    //Удаление указанных строк
    //deletstrmas(masA,size);
    //delaallmas(masA,size);
    std::cout << "\nModification Massiv:" << std::endl;  
    printmas(masA,size);
    //delete [] masA;  
}
 

Всего записей: 315 | Зарегистр. 28-10-2006 | Отправлено: 16:45 13-04-2008 | Исправлено: topotuno, 17:04 13-04-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru