Rozwiązania - tablice

powrót

//Ćwiczenie 1
#include<iostream>
#include<cstdlib>
using namespace std;

int main()
{
	int n, *tab;
	
	cin>>n;
	tab = new int [n]; //przydzielenie pamięci na n elementów
	
	for(int i=0;i<n;i++)
		cin>>tab[i]; //wczytanie danych
		
	for(int i=n-1;i>=0;i--) //wypisanie w odwrotnej kolejnosci		
		cout<<tab[i]<<" ";
	
	cout<<endl;
	
	system("pause");
	return 0;
}

//Ćwiczenie 2
#include<iostream>
#include<cstdlib>
using namespace std;

int main()
{
	int n, * tab = new int [1000001], ile = 0, liczba;
	
	for(int i=0;i<1000001;i++)
		tab[i] = 0; //wyzerowanie tablicy
	
	cin>>n;
	
	for(int i=0;i<n;i++)
	{
		cin>>liczba; //wczytanie liczby
		++tab[liczba]; //zliczenie jej
	}
	
	//przeszukanie unikatowych wartosci
	for(int i=0;i<n;i++)
		if(tab[i]==1)
			++ile;
	
	cout<<ile<<endl;
	
	system("pause");
	return 0;
}

//Ćwiczenie 3
#include<iostream>
#include<cstdlib>

using namespace std;

int main()
{
    int tab[104] = {}, q, l, k, o;
    char znak;
    
    cin>>o;
    
    while(o--)
    {
    	cin>>znak>>l>>k;          
              
		if(znak=='+')
        	tab[k]+=l;
        else
        	tab[k]-=l;
    }
    
    cin>>q;
    while(q--)
    {
    	cin>>k;
    	cout<<tab[k]<<endl;                
    }
    
    system("pause");
    return 0;    
}

//Ćwiczenie 4
#include<iostream>
#include<cstdlib>
#include<cstring>

using namespace std;

int main()
{
    char wyraz[201];
    int n, dl;
    
    cin>>n;
    
    while(n--)
    {
    	cin>>wyraz;
    	
    	dl = strlen(wyraz); //wyznaczenie liczby liter wyrazu
    	
    	if(dl>4 && wyraz[0] == wyraz[dl-1])
    		cout<<wyraz<<endl;
    }
    
    system("pause");
    return 0;    
}

//Ćwiczenie 5
#include<iostream>
#include<cstdlib>
#include<cstring>

using namespace std;

int main()
{
	int tab1[100000], tab2[100000], scal[200000], dl1, dl2;
	
	cin>>dl1>>dl2;
	
	for(int i=0;i<dl1;i++)
		cin>>tab1[i]; //wczytanie pierwszej tablicy
		
	for(int i=0;i<dl2;i++)
		cin>>tab2[i]; //wczytanie drugiej tablicy
		
	//scalanie tablic
	int i = 0, j = 0, k = 0;
	
	while(1)
	{
		if(i<dl1)
			if(j<dl2)
				if(tab1[i]<tab2[j])
					scal[k++] = tab1[i++];
				else
					scal[k++] = tab2[j++];
			else
			{
				while(i<dl1)
					scal[k++] = tab1[i++];
				break;
			}
		else
		{
			while(j<dl2)
				scal[k++] = tab2[j++];
			break;
		}
	}
	
	for(i=0;i<k;i++)
		cout<<scal[i]<<" ";
    
    system("pause");
    return 0;    
}