Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #include <time.h>
- void showTable(int *tab, int size){
- int i;
- for(i=0;i<size;i++){
- printf("%d ", tab[i]);
- }
- printf("\n");
- }
- void fillRandom(int *tab, int size){
- int i;
- for(i=0;i<size;i++){
- tab[i] = rand()%10;
- }
- }
- //zad1
- int* copyTable(int *tab_toCopy, int size){
- int *tab,i;
- tab = (int*)calloc(size,sizeof(int));
- for(i=0;i<size;i++){
- tab[i] = tab_toCopy[i];
- }
- return tab;
- }
- //zad2
- int* copyNonZero(int *tab_toCopy, int size, int *out_counter){
- int *tab,i,j,counter = 0;
- for(i=0;i<size;i++){
- if(tab_toCopy[i] != 0 ){
- counter ++;
- }
- }
- *out_counter = counter;
- tab = (int*)calloc(counter,sizeof(int));
- j=0;
- for(i=0;i<size;i++){
- if(tab_toCopy[i] != 0){
- tab[j] = tab_toCopy[i];
- j++;
- }
- }
- return tab;
- }
- //zad3
- void findMax(int *tab, int size, int *index, int* value){
- int i,_index, _value;
- _index = 0;
- _value = tab[0];
- for(i=1;i<size;i++){
- if(tab[i]>_value){
- _value = tab[i];
- _index = i;
- }
- }
- *index = _index;
- *value = _value;
- }
- //zad4
- void findMin(int *tab, int size, int *index, int* value){
- int i,_index, _value;
- _index = 0;
- _value = tab[0];
- for(i=1;i<size;i++){
- if(tab[i]<_value){
- _value = tab[i];
- _index = i;
- }
- }
- *index = _index;
- *value = _value;
- }
- //zad5
- void findMinMax(int *tab, int size, int *indexMin, int* valueMin,int *indexMax, int* valueMax, int* diff){
- findMax(tab, size, indexMax,valueMax);
- findMin(tab, size, indexMin, valueMin);
- *diff = *valueMax - *valueMin;
- }
- int **allocate2D(int x, int y){
- int **tab,i;
- tab = (int**)calloc(x,sizeof(int*));
- for(i =0;i<x;i++){
- tab[i] = (int*)calloc(y,sizeof(int));
- }
- return tab;
- }
- void populate2D(int **tab, int x, int y){
- int i,j;
- for(i=0;i<x;i++){
- for(j=0;j<y;j++){
- scanf("%d", &tab[i][j]);
- }
- }
- }
- void show2D(int **tab, int x, int y){
- int i,j;
- for(i=0;i<x;i++){
- for(j=0;j<y;j++){
- printf("%d ", tab[i][j]);
- }
- printf("\n");
- }
- }
- //zad 6 -> sami
- //zad7
- void change(int *var1, int *var2){
- int temp;
- temp = *var1;
- *var1 = *var2;
- *var2 = temp;
- }
- //zad 8
- void sums(int *tab, int size, int *sum1, int *sum2){
- *sum1 = 0; //dla wartosci
- *sum2 = 0; //dla wartosci bezwzglednych
- int i =0;
- for(i;i<size;i++){
- sum1 += tab[i];
- if(tab[i]<0){
- *sum2 += -1*tab[i];
- }
- else{
- *sum2 += tab[i];
- //sum2 = sum2 + tab[i];
- }
- }
- }
- // zad 9 -> sami
- //zad10
- void sums1(int *tab, int size, int *sum1, int *sum2){
- *sum1 = 0; //dla wartosci parzystych
- *sum2 = 0; //dla wartosci nieparzystych
- int i =0;
- for(i;i<size;i++){
- if(tab[i]%2 == 0){
- *sum1 += tab[i];
- }
- if(tab[i]%2 != 0){
- *sum2 += tab[i];
- }
- }
- }
- int main() {
- srand(time(NULL));
- //zad1
- int *tab, *tab1, *tab2, size = 10;
- tab = (int*)calloc(size,sizeof(int));
- tab1 = copyTable(tab,size);
- tab2 = copyTable(tab,size);
- //zad2
- int *tab3, *tab4, counter=0;
- tab3 = (int*)calloc(size,sizeof(int));
- fillRandom(tab3,size);
- tab4 = copyNonZero(tab3,size,&counter);
- //zad3
- int maxValue, maxIndex;
- findMax(tab3,size,&maxIndex, &maxValue);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement