Język C++. Program ma być skompilowany w Dev C++.Napisz program, który tworzy nową tablicę złożoną z 50 różnych liter. Użytkownik wpisuje jaki znak ma być wyeliminowany z tablicy. Komputer wyświetla wylosowaną tablicę oraz tablicę ze znakami pozostałymi po wyeliminowaniu znaku przez użytkownika. Dodatkowo uzyskujemy informację ile znaków wyeliminowano oraz ile z wyeliminowanych znaków poprzedzała litera "a". Proszę o dodatkowe komentarze w programie. Z góry bardzo dziękuje za odpowiedź, jest mi potrzebne to zadanko, obiecuję, że dam naj :)

1

Odpowiedzi

Najlepsza Odpowiedź!
2010-02-08T18:00:58+01:00
#include <cstdlib>
#include <iostream>
#include <time.h>

using namespace std;

int main(int argc, char *argv[])
{
srand(time(NULL));

char tab[50];


cout<<"Wylosowana tablica liter:"<<endl;
for (int i=0; i<50; i++)
{
int r = rand()%26;
r += 'a';
tab[i] = (char)r;
cout<<tab[i]<<" ";
}
cout<<endl<<endl;

cout<<"Jaki znak usunac?"<<endl;
char c = getchar();
cout<<endl;


int dousuniecia = 0;
int poprzednikA = 0;
for (int i=0; i<50; i++)
{
if(tab[i] == c)
{
dousuniecia++;
if(i>=1 && tab[i-1]=='a')
poprzednikA++;
}
}

char* tab2 = new char[50-dousuniecia];
int index = 0;

cout<<"Tablica z usunietym znakiem "<<c<<":"<<endl;
for (int i=0; i<50; i++)
{
if (tab[i] != c)
{
tab2[index] = tab[i];
cout<<tab2[index]<<" ";
index++;
}
}
cout<<endl<<endl;

cout<<"Usunieto "<<dousuniecia<<" znakow"<<endl;
cout<<poprzednikA<<" sposrod usunietych bylo poprzedzonych litera a"<<endl;


delete []tab2;

system("PAUSE");
return 0;
}