12/29/09
Vacanta placuta si un 2010 cu sanatate si bucurii!
Carmen Holotescu
Sa se scrie un program C care realizeaza urmatoarele prelucrari asupra unei
matrici cu M linii si N coloane de elemente reale:
- citeste elementele pe coloane
- afiseaza elementele pe linii
- calculeaza suma, produsul, maximul si pozitia acestuia
- interschimba elementele a doua linii cu indici cititi cu validare.
Fiecare prelucrare se va implementa ca o functie void fara parametri.
#include <stdio.h>
#define N 3
#define M 4
// var globale
float matrice[M][N];
// declaratii functii
void citire ( void );
void tiparire ( void );
void informatii ( void );
void interschimbare ( void );
// definire main
void main(void){
citire();
tiparire();
informatii();
interschimbare();
}
// definitii functii
void citire(void){ // pe coloane
int i,j;
for (j = 0; j < N; j++)
for (i = 0;i < M; i++){
printf("elem[%d][%d]:",i,j);
scanf("%f",&matrice[i][j]);
}
}
void tiparire(void){ // pe linii
int i,j;
puts("Matricea introdusa:");
for (i = 0; i < M; i++){
for (j = 0; j < N; j++)
printf("%f\t",matrice[i][j]);
putchar('\n');
}
}
void informatii ( void ){
int i, j, im, in;
float suma, produs, maxim;
for (i = im = in = suma = 0, produs = 1,
maxim = matrice [0][0]; i < M; i++)
for (j = 0; j < N; j++){
suma += matrice[i][j];
produs *= matrice[i][j];
if ( matrice[i][j] > maxim ){
im = i; in = j;
maxim = matrice[i][j];
} // if
} // for j
// tiparire rezultate
printf ( "%f %f %f %d %d\n", suma, produs,
maxim, im, in );
} // informatii
void interschimbare ( void ){
int i1, i2, j; float aux;
// indicii cititi cu validare
while ( printf ( "indice 1:" ),
scanf ( "%d", &i1 ),
i1 < 0 || i1 >= M );
while ( printf ( "indice 2:" ),
scanf ( "%d", &i2 ),
i2 < 0 || i2 >= M || i1 == i2);
// interschimbare linii
for ( j = 0; j < N; j++ ){
aux = matrice[i1][j];
matrice[i1][j] = matrice[i2][j];
matrice[i2][j] = aux;
}
puts ( "Matricea dupa interschimbare");
tiparire();
}
Posted by Carmen at 12:44:59 am into the following categories:
Materiale