Advertisement
Guest User

Joanna Binek, macierz rzadka

a guest
Jan 17th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. // Joanna Binek, grupa 2a, sroda godz 12:30, nr indeksu 297183
  2. // program na kolokwium - "macierz rzadka"
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. #define WIE 3
  8. #define KOL 4
  9.  
  10. struct komorka{
  11. int wiersz;
  12. int kolomna;
  13. double wartosc;
  14. struct komorka * nastepna;
  15. };
  16.  
  17. void stworz(struct komorka ** poczatek,int x,int y,double wart) {
  18. struct komorka *nowa;
  19. nowa=(struct komorka *)malloc(sizeof(struct komorka));
  20.  
  21. nowa->nastepna=(*poczatek);
  22. nowa->wiersz=x+1;
  23. nowa->kolomna=y+1;
  24. nowa->wartosc=wart;
  25. (*poczatek)=nowa;
  26. };
  27.  
  28. void wyswietl(struct komorka* poczatek){
  29. while(poczatek!=NULL){
  30. printf("Wie: %d, kol: %d, ma wartosc: %lf\n",poczatek->wiersz,poczatek->kolomna,poczatek->wartosc);
  31. poczatek=poczatek->nastepna;
  32.  
  33. }
  34.  
  35. };
  36.  
  37.  
  38. struct nn{
  39. struct komorka * najwiekszy;
  40. struct komorka * najmniejszy;
  41. };
  42.  
  43. struct nn najwiekszy_najmniejszy(struct komorka * poczatek){
  44. struct komorka *najw=poczatek;
  45. struct komorka *najm=poczatek;
  46.  
  47. while (poczatek!=NULL){
  48. if ((poczatek->wartosc)<(najm->wartosc)) najm=poczatek;
  49. poczatek=poczatek->nastepna;
  50. }
  51. while (poczatek!=NULL){
  52. if ((poczatek->wartosc)>(najw->wartosc)) najw=poczatek;
  53. poczatek=poczatek->nastepna;
  54. }
  55. return (struct nn){najw, najm};
  56. };
  57.  
  58.  
  59.  
  60. int main()
  61. {
  62. int i,j;
  63. struct komorka *poczatek=NULL;
  64. struct komorka * najwi,*najmn;
  65. double tab[WIE][KOL]={{1.,0.000001,0.,4.},{0.,1.,0.,3.456},{0.,0.,1.,0.}};
  66.  
  67. for(i=0;i<WIE;++i){
  68. for(j=0;j<KOL;++j){
  69. if (tab[i][j]!=0){stworz(&poczatek,i,j,tab[i][j]);}
  70.  
  71. }
  72. };
  73.  
  74. wyswietl(poczatek);
  75. struct nn naj_najm;
  76. naj_najm = najwiekszy_najmniejszy(poczatek);
  77. najwi=naj_najm.najwiekszy;
  78. printf("Element najwiekszy wynosi %lf, jest on w %d wierszu, %d kolumnie\n",najwi->wartosc,najwi->wiersz,najwi->kolomna);
  79. najmn=naj_najm.najmniejszy;
  80. printf("Element najmniejszy wynosi %lf, jest on w %d wierszu, %d kolumnie\n",najmn->wartosc,najmn->wiersz,najmn->kolomna);
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement