Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct matrice {
- int l, c;
- int n;
- int lin[100];
- int col[100];
- float x[100];
- };
- void citire(struct matrice *m)
- {
- int l1,c1;
- scanf("%d%d", &l1, &c1);
- m->l=l1;
- m->c=c1;
- m->n = 0;
- int i, j;
- float x;
- for (i = 0; i < m->l; i++) {
- for (j = 0; j < m->c; j++) {
- scanf("%f", &x);
- if (x) {
- m->x[m->n] = x;
- m->col[m->n] = j;
- m->lin[m->n] = i;
- m->n++;
- }
- }
- }
- }
- void afisare(struct matrice *m)
- {
- int i, j, nr = 0;
- for (i = 0; i < m->l; i++) {
- for (j = 0; j < m->c; j++) {
- if (m->lin[nr] == i && m->col[nr] == j) {
- printf("%.0f ", m->x[nr]);
- nr++;
- }
- else {
- printf("0 ");
- }
- }
- printf("\n");
- }
- }
- void adunare(struct matrice *a, struct matrice *b)
- {
- float c[100][100]={0};
- for(int i=0;i<a->n;i++){
- c[a->lin[i]][a->col[i]]=a->x[i];
- }
- for(int i=0;i<b->n;i++){
- c[b->lin[i]][b->col[i]]+=b->x[i];
- }
- for(int i=0;i<a->l;i++){
- for(int j=0;j<a->c;j++){
- printf("%.0f ",c[i][j]);
- }
- printf("\n");
- }
- }
- int main()
- {
- struct matrice *a,*b;
- a=(struct matrice *)calloc(1,sizeof(struct matrice));
- b=(struct matrice *)calloc(1,sizeof(struct matrice));
- citire(a);
- citire(b);
- adunare(a,b);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement