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");
}
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 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;
}
}