Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <stddef.h>
- /*scegliamo come rappresentazione alternativa di una matrice, una lista che indica
- il valore dell'elemento della matrice, e la sua posizione individuata da i e j.*/
- int i;
- int j;
- int imax;
- int jmax;
- struct newmatrix
- {
- int indicei;
- int indicej;
- int valore;
- struct newmatrix * prossimo;
- };
- struct newmatrix* matricenuova;
- void matricerid(int oldmatrix[imax][jmax])
- {
- struct newmatrix* matricenuova=(struct newmatrix*)malloc(sizeof(struct newmatrix));
- for (i=0; i<imax; i++)
- {
- for (j=0; j<jmax; j++)
- {
- if (oldmatrix[i][j]!=0)
- {
- matricenuova->indicei=i;
- matricenuova->indicej=j;
- matricenuova->valore=oldmatrix[i][j];
- matricenuova->prossimo=(struct newmatrix*)malloc(sizeof(struct newmatrix));
- matricenuova=matricenuova->prossimo;
- }
- }
- }
- }
- void elementreplace(struct newmatrix *prossimo)
- {
- int value;
- printf("inserisci i valori di i,j e il valore da sostituire");
- scanf("%d", &i);
- scanf("%d", &j);
- scanf("%d", &value);
- while(prossimo != NULL) {
- if(matricenuova->indicei!=i && matricenuova->indicej!=j)
- {
- matricenuova=matricenuova->prossimo;
- }
- else
- {
- printf("i valori di indice %d e %d sono", matricenuova->indicei, matricenuova->indicej);
- matricenuova->valore=value;
- matricenuova=(struct newmatrix*)malloc(sizeof(struct newmatrix));
- }
- }
- }
- void visit(struct newmatrix *ptr){
- while(ptr != NULL) {
- printf("%d\t %d\t %d\t\n",ptr->valore,ptr->indicei,ptr->indicej);
- ptr=ptr->prossimo;
- }
- }
- int main(void)
- {
- printf("inserire i valori i e j della matrice:\ni:");
- scanf("%d", &imax);
- printf("\nj:");
- scanf("%d", &jmax);
- int matrice[imax][jmax];;
- for (i=0; i<imax; i++)
- {
- printf("riga %d:", i+1);
- for (j=0; j<jmax; j++)
- {
- printf("\ncolonna %d:",j+1);
- scanf("%d", &matrice[i][j]);
- }
- }
- printf("la matrice inserita è:\n");
- for (i=0; i<imax; i++)
- {
- printf("\n");
- for (j=0; j<jmax; j++)
- {
- printf("%d ", matrice[i][j]);
- }
- }
- matricerid(matrice);
- elementreplace(matricenuova);
- visit(matricenuova);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement