Podstawy Programowania C 12

Zadanie 1. Proszę napisać listę zawierającą dane: int index;

double wartosc;

#include <stdio.h>

void dodaj_koniec(struct lista *l, double px){

#include <conio.h>

struct lista *pl;

#include <stdlib.h>

pl=l;

struct lista{

if(pl!=NULL) {

int id;

while(pl->next!=NULL)

double x;

pl=pl->next;

struct lista * next;

pl->next=nowy(pl->id+1,px);

};

}

struct lista * nowa();

}

struct lista * nowy(int, double); void druk(struct lista *l){

void dodaj_koniec(struct lista *l, double px); struct lista *pl;

void dodaj_poczatek(struct lista **l, double pl=l; px);

if(pl!=NULL) {

void wstaw_za(struct lista *l, int pid); printf("%d\t%.2lf\n",pl->id,pl->x); void druk(struct lista *l);

while(pl->next!=NULL) {

int main(){

pl=pl->next;

struct lista * l1, *l2;

printf("%d\t%.2lf\n",pl->id,pl->x); l1=nowy(1,88);

}

dodaj_koniec(l1,8);

}

dodaj_koniec(l1,6);

}

dodaj_poczatek(&l1,16);

void dodaj_poczatek(struct lista **l, double wstaw_za(l1,2);

px){

druk(l1);

struct lista *pl;

return 0;

pl=*l;

}

*l=nowa();

struct lista * nowa(){

(*l)->next=pl;

struct lista *l;

(*l)->x=px;

l=(struct lista *)malloc(sizeof(struct lista)); pl=*l;

l->id=1;

pl->id=1;

l->x=0;

while(pl->next!=NULL) {

l->next=NULL;

pl->next->id=pl->id+1;

return l;

pl=pl->next;

}

}

}

struct lista * nowy(int pid, double px){

struct lista *l;

l=nowa();

l->x=px;

l->id=pid;

return l;

}

void wstaw_za(struct lista *l, int pid){

struct lista *pl, *pm;

if(l!=NULL) {

pl=l;

while(pl->next!=NULL && pl->id!=pid) pl=pl->next;

if(pl->next!=NULL) {

pm=pl->next;

pl->next=nowy(pl->id+1,0);

pl->next->next=pm;

while(pl->next!=NULL) {

pl->next->id=pl->id+1;

pl=pl->next;

}

}

else {

pl->next=nowy(pl->id+1,0);

pl->next->next=NULL;

}

}

}

Zadanie 2 Możliwe jest tworzenie list indeksów:

#include <stdio.h>

struct lista * nowa(){

#include <conio.h>

struct lista *l;

#include <string.h>

l=(struct lista *)mal oc(sizeof(struct lista));

#include <stdlib.h>

l->id=1;

struct ludz{

l->x=0;

char *imie;

l->next=NULL;

char *nazwisko;

l->osoba=NULL;

};

return l;

struct ludz * nowy_ludz(char * i, char * n);

}

struct lista{

struct lista * nowy(int pid, double px, char * n, char *

int id;

i){

double x;

struct lista *l;

struct ludz * osoba;

l=nowa();

struct lista * next;

l->x=px;

};

l->id=pid;

l->osoba=nowy_ludz(i,n);

struct lista * nowa();

return l;

struct lista * nowy(int, double, char *, char *);

}

void dodaj_koniec(struct lista *, double, char * , char * );

void dodaj_koniec(struct lista *l, double px, char * n, void dodaj_pocz(struct lista **, double, char * , char * i){

char * );

struct lista *pl;

pl=l;

void wstaw_za(struct lista *, int , char * , char * ); if(pl!=NULL) {

void druk(struct lista *);

while(pl->next!=NULL)

int main(){

pl=pl->next;

struct lista * l1;

pl->next=nowy(pl->id+1,px,n,i);

l1=nowy(1,88,"nowak","olek");

}

l1->next=nowy(2,60,"kowal","ala");

}

dodaj_koniec(l1,8,"nowaczek","olek"); void druk(struct lista *l){

wstaw_za(l1,2,"nowak","olek"); druk(l1);

struct lista *pl;

printf("\n\n");

pl=l;

dodaj_pocz(&l1,16,"kotek", "mruczek"); if(pl!=NULL) {

druk(l1);

printf("%d\t%.2lf\tnazwisko : %s\timie : %s\n",pl-return 0;

>id,pl->x,pl->osoba->nazwisko,pl->osoba->imie);

}

while(pl->next!=NULL) {

pl=pl->next;

printf("%d\t%.2lf\tnazwisko : %s\timie : %s\n",pl-

>id,pl->x,pl->osoba->nazwisko,pl->osoba->imie);

}

}

}

void dodaj_pocz(struct lista **l, double px, char * struct ludz * nowy_ludz(char * i, char * n){

n, char * i){

struct ludz * pm;

struct lista *pl;

int j;

pl=*l;

pm=(struct ludz * )mal oc(sizeof(struct ludz));

*l=nowa();

pm->imie=(char*)mal oc(sizeof(char)*(strlen(n)+1)); (*l)->next=pl;

pm-

(*l)->osoba=nowy_ludz(i,n);

>nazwisko=(char*)mal oc(sizeof(char)*(strlen(i)+1)); (*l)->x=px;

strcpy(pm->imie,i);

pl=*l;

strcpy(pm->nazwisko,n);

pl->id=1;

return pm;

while(pl->next!=NULL) {

}

pl->next->id=pl->id+1;

pl=pl->next;

}

}

void wstaw_za(struct lista *l, int pid, char * n, char

* i){

struct lista *pl, *pm;

if(l!=NULL) {

pl=l;

while(pl->next!=NULL && pl->id!=pid) pl=pl->next;

if(pl->next!=NULL) {

pm=pl->next;

pl->next=nowy(pl->id+1,0,n , i);

pl->next->next=pm;

while(pl->next!=NULL) {

pl->next->id=pl->id+1;

pl=pl->next;

}

}

else {

pl->next=nowy(pl->id+1,0, n, i);

pl->next->next=NULL;

}

}

}

Zadanie 3. Sito Erastotenesa. Wersja int

#include <stdio.h>

struct lista * nowa(int n){

#include <conio.h>

struct lista *pl;

#include <stdlib.h>

pl=(struct lista * )mal oc(sizeof(struct lista)); struct lista{

pl->n=n;

int n;

pl->next=NULL;

struct lista * next;

return pl;

};

}

void druk(struct lista *);

struct lista * ini(int k){

void usun(struct lista *);

struct lista * pl;

void licz(struct lista *);

struct lista * plm;

void zapisz(struct lista *, char *); int i;

struct lista * ini(int);

pl=nowa(2);

struct lista * nowa(int );

plm=pl;

int main(){

for(i=3;i<=k;i++) {

struct lista * l1;

plm->next=nowa(i);

l1=ini(1000);

plm=plm->next;

licz(l1);

}

druk(l1);

return pl;

zapisz(l1,"prb.txt");

}

return 0;

void usun(struct lista *l){

}

struct lista * pl;

pl=l;

void druk(struct lista *l){

if(pl->next!=NULL)

struct lista *pl;

{

pl=l;

pl=pl->next->next;

if(pl!=NULL) {

free(l->next);

printf("%d\n",pl->n);

l->next=pl;

while(pl->next!=NULL) {

}

pl=pl->next;

}

printf("%d\n",pl->n);

}

}

}

void zapisz(struct lista *l, char * n){

FILE *plik;

struct lista *pl;

plik=fopen(n,"w");

pl=l;

if(pl!=NULL && plik!=NULL) {

fprintf(plik,"%d\n",pl->n);

while(pl->next!=NULL) {

pl=pl->next;

fprintf(plik,"%d\n",pl->n);

}

}

if(plik==NULL)

printf("\n\tPelny dysk\n");

}

void licz(struct lista *l){

struct lista *pla, *plb, *plx;

int pn;

pla=l;

printf("\n");

while(pla->next!=NULL)

{

pn=pla->n;

plb=pla->next;

while(plb->next!=NULL)

{

if(((plb->next->n)%pn)==0)

usun(plb);

if(plb->next!=NULL)

plb=plb->next;

}

if(((pla->next->n)%pn)==0)

usun(pla->next);

pla=pla->next;

}

}

Zadanie 4. Sito Erastotenesa. Wersja double

#include <stdio.h>

void zapisz(struct lista *l, char * n){

#include <conio.h>

FILE *plik;

#include <stdlib.h>

struct lista *pl;

#include <math.h>

plik=fopen(n,"w");

struct lista{

pl=l;

double n;

if(pl!=NULL && plik!=NULL) {

struct lista * next;

fprintf(plik,"%.0lf\n",pl->n);

};

while(pl->next!=NULL) {

void druk(struct lista *);

pl=pl->next;

void usun(struct lista *);

fprintf(plik,"%.0lf\n",pl->n); void licz(struct lista *);

}

void zapisz(struct lista *, char * );

}

struct lista * ini(double);

if(plik==NULL)

struct lista * nowa(double ); printf("\n\tPelny dysk\n");

if(plik!=NULL) fclose(plik);

int main(){

}

struct lista * l1;

l1=ini(100000);

struct lista * nowa(double n){

licz(l1);

struct lista *pl;

zapisz(l1,"prb.txt");

pl=(struct lista * )malloc(sizeof(struct lista)); pl->n=n;

return 0;

pl->next=NULL;

}

return pl;

}

void druk(struct lista *l){

struct lista *pl;

struct lista * ini(double k){

pl=l;

struct lista * pl;

if(pl!=NULL) {

struct lista * plm;

printf("%.0lf\n",pl->n);

double i;

while(pl->next!=NULL) {

pl=nowa(2);

pl=pl->next;

plm=pl;

printf("%.0lf\n",pl->n);

for(i=3;i<=k;i++) {

}

plm->next=nowa(i);

}

plm=plm->next;

}

}

return pl;

}

void usun(struct lista *l){

void licz(struct lista *l)

struct lista * pl;

{

pl=l;

struct lista *pla, *plb, *plx;

if(pl->next!=NULL)

double pn;

{

pla=l;

pl=pl->next->next;

printf("\n");

free(l->next);

while(pla->next!=NULL)

l->next=pl;

{

}

pn=pla->n;

}

plb=pla->next;

while(plb->next!=NULL)

{

if((int)fmod((plb->next->n),pn)==0) usun(plb);

if(plb->next!=NULL)

plb=plb->next;

}

if((int)fmod((pla->next->n),pn)==0) usun(pla->next);

pla=pla->next;

}

}