Adattare codice esercizio in c in c++

di il
1 risposte

Adattare codice esercizio in c in c++

Di seguito vi riporto un esercizio sulle liste concatenate eseguito in linguaggio c, chi mi sa aiutare ad adattare il codice in c++?

Letta in input una sequenza di numeri interi positivi memorizzarla in una
lista. Costruire una seconda lista contenente soltanto gli elementi della prima lista che
non siano numeri primi. Stampare la seconda lista.

#include <stdlib.h>
2 #include <stdio.h>
3 #include <math.h>
4
5 struct nodo {
6 int info;
7 struct nodo *next;
8 };
9
10 int primo(int x) {
11 int i, flag;
12 flag = 1;
13 i = 2;
14 while (i<=sqrt(x) && flag==1) {
15 if (x%i == 0)
16 flag = 0;
17 i = i+1;
18 }
19 return(flag);
20 }
21
22 struct nodo *leggi_lista(void) {
23 struct nodo *p, *primo;
24 int i, n;
25 primo = NULL;
26 printf("Numero di elementi: ");
27 scanf("%d", &n);
28 printf("inserisci %d numeri interi positivi: ", n);
29 for (i=0; i<n; i++) {
30 p = malloc(sizeof(struct nodo));
31 scanf("%d", &p->info);
32 p->next = primo;
33 primo = p;
34 }
35 return(primo);
36 }
37
38 void stampa_lista(struct nodo *p) {
39 while (p != NULL) {
40 printf("%d ", p->info);
41 p = p->next;
42 }
43 printf("\n");
44 return;
45 }
46
47 int main(void) {
48 struct nodo *p, *q, *r;
2
49 p = leggi_lista();
50 r = NULL;
51 while (p != NULL) {
52 if (primo(p->info) == 0) {
53 q = malloc(sizeof(struct nodo));
54 q->info = p->info;
55 q->next = r;
56 r = q;
57 }
58 p = p->next;
59 }
60 stampa_lista(r);
61 return(0);
62 }

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte