TABLICA w C

magda33
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 18 lut 2010, o 10:16
Płeć: Kobieta
Lokalizacja: Świętokrzyskie

TABLICA w C

Post autor: magda33 »

Dana jest tablica o wymiarach NxN. Obliczyć:
- sumę elementów z wierszy o parzystych numerach;
- sumę elementów z kolumn o nieparzystych numerach;
- sumę elementów o indeksach parzystych z kolumn o nieparzystych numerach;
- sumę skrajnych elementów;
- maksimum skrajnych elementów;
- iloczyn elementów 3 kolumny i 6 wiersza.

Program ma być zabezpieczony przed wpisaniem przez użytkownika zerowych wymiarów tablicy.

Dane wejściowe i wyjściowe mają być drukowane na ekranie
spammer
Użytkownik
Użytkownik
Posty: 174
Rejestracja: 15 sty 2009, o 17:28
Płeć: Mężczyzna
Podziękował: 40 razy
Pomógł: 12 razy

TABLICA w C

Post autor: spammer »

Siemka.

Czy już coś próbowałaś z tym zrobić? Jeżeli tak to podaj kod. Myślę, że raczej od tak sobie nikt Ci nie napisze. Chociaż może się mylę... Albo chociaż masz jakiś pomysł na zaczęcie?:D
Awatar użytkownika
Damian09
Użytkownik
Użytkownik
Posty: 42
Rejestracja: 29 lip 2009, o 19:49
Płeć: Mężczyzna
Pomógł: 1 raz

TABLICA w C

Post autor: Damian09 »

Napisałem program który wykonuje dwie pierwsze funkcje. Reszta analogicznie.Oczywiście wiersze parzyste i nieparzyste w sensie praw algebry a nie C. Zrobilem to w visualu 2005.

Kod: Zaznacz cały

#include <stdio.h>
#define max 30
main(){
	//deklaracja zmiennych
int tab[max][max];
int i,j,k,l,m,sumap,suman;
sumap=0;
suman=0;
//wczytywanie liczby wierszy i kolumn
printf("Podaj ilosc wierszy ");
scanf("%d", &k);
printf("Podaj liczbe kolumn ");
scanf("%d", &l);
//wczytanie odpowiednich elementow komorek
for(i=0;i<k;i++){
	for(j=0;j<l;j++){
	printf("Podaj element komorki tab[%d][%d]", i,j);
	scanf("%d", &m);
	tab[i][j]=m;
	}
}
//wypisanie macierzy
for(i=0;i<k;i++){
	printf("
");
	for(j=0;j<l;j++){
		
	printf("%d	", tab[i][j]);
	
	}
}
printf("

");

//sumowanie elementow wierszy parzystych

	for(i=0;i<k;i++){
		for(j=0;j<l;j++){
			if((i+1)%2==0){
		sumap+=tab[i][j];
			}
		}
	}

printf("Suma elementow wierszy parzystych %d
", sumap);
//sumowanie elementow wierszy nieparzystych
for(i=0;i<k;i++){
		for(j=0;j<l;j++){
			if((i+1)%2==0){
		suman+=tab[i][j];
			}
		}
	}
printf("Suma elementow wierszy nieparzystych %d
", suman);
getch();

}
magda33
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 18 lut 2010, o 10:16
Płeć: Kobieta
Lokalizacja: Świętokrzyskie

TABLICA w C

Post autor: magda33 »

Dzięki Damian
czy możesz zobaczyć to co ja zrobiłam?

#include <stdio.h>
#include <stdlib.h>

void randCounts(int N, int *tab[N][N]);
void printTab(int N, int tab[N][N]);
void countTab(int N, int tab[N][N]);
int maximum(int i1, int j1, int i2, int j2, int N, int tab[N][N]);
int comp(int a, int b);
int main(int argc, char *argv[])
{
int N;
do{
printf("Podaj rozmiar tablicy : ");
scanf("%d", &N);
}while(N <= 0);

int tablica[N][N];
randCounts(N, &tablica);
printf("Tablica wejsciowa:

");
printTab(N, &tablica);
printf("

");
countTab(N, tablica);
printf("

");
return 0;
}


void randCounts(int N, int *tab[N][N])
{
int i, j;
srand((int)time(NULL));
for (i=0; i< N; ++i)
for (j=0; j< N; ++j)
tab[j] = (rand()%10)+1;
}
void printTab(int N, int tab[N][N]){
int i, j;
for (i=0; i< N; ++i){
for (j=0; j< N; ++j)
printf("%d ", tab[j]);
printf("
");
}
}
void countTab(int N, int tab[N][N]){
int suma, i, j;
if (N < 2) return;
for (i=1, suma=0; i< N; i += 2)
for (j=0; j< N; ++j) suma += tab[j];
printf("Suma elementow z wierszy o parzystych numerach : %d
", suma);

for (i=0, suma=0; i< N; ++i)
for (j=0; j< N; j+=2) suma += tab[j];
printf("Suma elementow z kolumn o nieparzystych numerach : %d
", suma);

for (i=1, suma=0; i< N; i+=2)
for (j=0; j< N; j+=2) suma += tab[j];
printf("Suma elementow o indeksach parzystych z kolumn o nieparzystych numerach; : %d
", suma);

int max = comp(-1, maximum(0,0,0, N-1, N, tab));
max = comp(max, maximum(N-1,0,N-1, N-1, N, tab));
max = comp(max, maximum(0,0,N-1, 0, N, tab));
max = comp(max, maximum(0,N-1,N-1, N-1, N, tab));
printf("Maksimum skrajnych elementow : %d
", max);

if (N < 6) return;
int iloczyn =1;
for (i=0; i<N; ++i){
iloczyn *= tab[2];
if (i != 2) iloczyn *= tab[5];
}
printf("Iloczyn elementow 3 kolumny i 6 wiersza : %d
", iloczyn);
}
int maximum(int i1,int j1,int i2,int j2,int N,int tab[N][N]){
int i, j, max=tab[i1][j1];
for (i= i1; i<= i2; ++i)
for (j=j1; j<= j2; ++j)
if (max < tab[j]) max = tab[j];

return max;
}
int comp(int a, int b){
if (a > b) return a; else return b;
}-- 18 lut 2010, o 22:16 --Mam jeszcze jedno zadanie do zrobienia -Program umożliwia wczytywanie danych do tablicy dotyczących samochodów. Elementy tablicy to dane typu struct (rekordy). Zmienne przechowywane w strukturach to: marka samochodu, model samochodu, kolor, pojemność silnika, rodzaj paliwa, wyposażenie dodatkowe, przebieg, rok produkcji, spalanie.

Program umożliwia wprowadzenie i wyświetlenie danych.
Awatar użytkownika
Damian09
Użytkownik
Użytkownik
Posty: 42
Rejestracja: 29 lip 2009, o 19:49
Płeć: Mężczyzna
Pomógł: 1 raz

TABLICA w C

Post autor: Damian09 »

W moim programie był błąd.
Tutaj jest poprawny kod.

Kod: Zaznacz cały

#include <stdio.h>
#define max 30
main(){
   //deklaracja zmiennych
int tab[max][max];
int i,j,k,l,m,sumap,suman;
sumap=0;
suman=0;
//wczytywanie liczby wierszy i kolumn
printf("Podaj ilosc wierszy ");
scanf("%d", &k);
printf("Podaj liczbe kolumn ");
scanf("%d", &l);
//wczytanie odpowiednich elementow komorek
for(i=0;i<k;i++){
   for(j=0;j<l;j++){
   printf("Podaj element komorki tab[%d][%d]", i,j);
   scanf("%d", &m);
   tab[i][j]=m;
   }
}
//wypisanie macierzy
for(i=0;i<k;i++){
   printf("
");
   for(j=0;j<l;j++){
      
   printf("%d	", tab[i][j]);
   
   }
}
printf("

");

//sumowanie elementow wierszy parzystych

   for(i=0;i<k;i++){
      for(j=0;j<l;j++){
         if((i+1)%2==0){
      sumap+=tab[i][j];
         }
      }
   }

printf("Suma elementow wierszy parzystych %d
", sumap);
//sumowanie elementow wierszy nieparzystych
for(i=0;i<k;i++){
      for(j=0;j<l;j++){
         if((i)%2==0){
      suman+=tab[i][j];
         }
      }
   }
printf("Suma elementow wierszy nieparzystych %d
", suman);
getch();

}


PS. Dodaj do swojego komentarze bo ciężko będzie mi to sprawdzić.
magda33
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 18 lut 2010, o 10:16
Płeć: Kobieta
Lokalizacja: Świętokrzyskie

TABLICA w C

Post autor: magda33 »

Ok, dzięki !
ODPOWIEDZ