Dana jest n elementowa tablica liczb całkowitych: const int n=…;
int tab[n]={…};
Napisz funkcję, która nic nie zwraca, a jako argumenty przyjmuje tablicę oraz jej długość. Funkcja ma usunąć z tablicy wszystkie liczby parzyste przesuwając pozostałe liczby w lewo, np.: {1,2,3,4,5,6} -> {1,3,5,0,0,0}.
void fun(int tab[], int n)
{
int k=n;
for (int i=0; i<k; i++)
{
if (tab[i]%2==0)
{
for (int j=i; j<n-1; j++) tab[j]=tab[j+1];
tab[n-1]=0;
i--;
k--;
}
}
}
int main()
{
const int n=10;
int tab[n]={1,2,3,4,5,6,7,8,9,10}; fun(tab,n);
for (int i=0; i<n; i++) cout<<tab[i]<<endl; return 0;
}
2.
Utwórz tablicę nxn (n – stała znana na etapie kompilacji) liczb całkowitych i wypełnij ją w następujący sposób:
1
3
5
7
2
4
6
8
9
11
13
15
10
12
14
16
int main()
{
const int n=4;
int tab[n][n];
int k;
for (int i=0; i<n; i++)
{
k=(i-i%2)*n+i%2+1;
for (int j=0; j<n; j++)
{
tab[i][j]=k;
k+=2;
}
}
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++) cout<<tab[i][j]<<"\t"; cout<<endl;
}
return 0;
}
3.
Dana jest tablica liczb całkowitych o długości n zawierająca wyłącznie wartości zero lub jeden. Napisz funkcję, która otrzymuje tablicę oraz jej rozmiar. Funkcja ma zwrócić wartość prawda lub fałsz w zależności czy wszystkie
jedynki w tablicy znajdują się koło siebie (np.: {0,1,1,1,0,0} – prawda, {0,1,0,1,1} – fałsz, {0,0} – fałsz). Napisz przykładowy program wywołujący tą funkcję (tablicę zainicjalizuj wartościami {…}).
bool fun(int tab[], int n)
{
int zmiany=0;
for (int i=0; i<n-1; i++) if (tab[i]!=tab[i+1])
zmiany++;
zmiany+=tab[0];
if (zmiany==1 || zmiany==2) return true;
return false;
}
int main()
{
const int n=5;
int tab[n]={0,0,1,1,0};
cout<<boolalpha<<fun(tab,n)<<endl; return 0;
}
4.
Utwórz tablicę nxn (n – stała znana na etapie kompilacji) liczb całkowitych i wypełnij ją w następujący sposób:
1
5
8
10
0
2
6
9
0
0
3
7
0
0
0
4
int main()
{
const int n=4;
int tab[n][n]={0};
int k=1;
for (int i=0; i<n; i++)
{
for (int j=0; j+i<n; j++)
{
tab[j][j+i]=k;
k++;
}
}
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++) cout<<tab[i][j]<<"\t"; cout<<endl;
}
return 0;
}
5.
Dana jest tablica 2D liczb całkowitych o rozmiarze nxn zawierająca n zer. Napisz program, który sprawdzi i wypisze na ekranie informację, czy wszystkie zera w tablicy to zera niezależne (w żadnej kolumnie ani wierszu nie ma dwóch zer).
int main()
{
const int n=3;
int tab[n][n]={0,1,2,3,0,4,5,6,0}; int il_w, il_k, il=0;
for (int i=0; i<n; i++)
{
il_w=0; il_k=0;
for (int j=0; j<n; j++)
{
if (tab[i][j]==0)
il_w++;
if (tab[j][i]==0)
il_k++;
}
if (il_w!=1 || il_k!=1)
break;
il++;
}
if (il==n)
cout<<"Macierz zawiera zera niezalezne\n"; else
cout<<"Macierz zawiera zera zalezne\n"; return 0;
}
6.
Dana jest n elementowa tablica zawierająca n liczb całkowitych, np.: const int n=10; int tab[n]={1,2,3,4,5,6,7,8,9,10}; Napisz funkcję, która jako argumenty przyjmuje tablicę oraz jej długość. Funkcja ma tak zamienić kolejność liczb w tablicy, żeby na początku były liczby parzyste a potem liczby nieparzyste: {2,4,6,8,10,1,3,5,7,9}.
void fun(int tab[],int n)
{
int pom, k=n;
for (int i=0; i<k; i++)
{
if (tab[i]%2==1)
{
pom=tab[i];
for (int j=i; j<n-1; j++) tab[j]=tab[j+1];
tab[n-1]=pom;
i--;
k--;
}
}
}
int main()
{
const int n=10;
int tab[n]={1,2,3,4,5,6,7,8,9,10}; fun(tab,n);
for (int i=0; i<n; i++) cout<<tab[i]<<endl; return 0;
}
7.
Napisz program, który dla stałego i znanego na etapie kompilacji n utworzy n elementową tablicę i wypełni ją wg schematu:
1
1
1
0 1 1
2
3
1 1
1
1
1
1
1 1
1
1 1 1
int main()
{
const int n=10;
double tab[n]={1};
for (int i=1; i<n; i++) tab[i]=1/(tab[i-1]+1);
for (int i=0; i<n; i++) cout<<tab[i]<<endl; return 0;
8.
Utwórz tablicę 2nx2n (n – stała znana na etapie kompilacji) liczb całkowitych i wypełnij ją w następujący sposób (przykład dla n=2): 1
2
5
6
3
4
7
8
9
10
13
14
11
12
15
16
int main()
{
const int n=2;
int tab[2*n][2*n];
int m=1;
for (int i=0; i<2; i++) for (int j=0; j<2; j++) for (int k=0; k<n; k++) for (int l=0; l<n; l++)
{
tab[i*n+k][j*n+l]=m;
m++;
}
for (int i=0; i<2*n; i++)
{
for (int j=0; j<2*n; j++) cout<<tab[i][j]<<"\t"; cout<<endl;
}
return 0;
}