Untitled
unknown
plain_text
3 years ago
1.5 kB
5
Indexable
/* Abbiamo un file con una sequenza di numeri reali separati da spazi, ritorni a capo ecc.. Vogliamo un programma che definisca due vettori, v1 e v2, rispettivamente di dimensione N ed M (definiti con una define). In v1 devono esser messi tutti i valori compresi tra -15 e 17, mentre in v2 tutti i valori maggiori e uguali a 64 che siano pari. Gli altri vengono scartati e conteggiati. Il programma si conclude con la stampa su due righe dei due vettori. Il programma termina se uno dei vettori è pieno prima della chiusura del file. */ #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define N 1 #define M 1 int main() { char file[FILENAME_MAX]; int v1[N] = {0}; int v2[M] = {0}; int i, j; int n; int conta_scarti = 0; FILE *fp; printf("Nome file: "); scanf("%s",file); if ((fp = fopen(file, "r")) == NULL) { fscanf(stderr, "Impossibile aprire il file: %s\n",file); return EXIT_FAILURE; } while (fscanf(fp, "%d", &n) != EOF) { for (i=0; i<N && (n>=-15 && n<=17); i++) { v1[i] = n; printf("%d ",v1[i]); } } printf("\n"); fclose(fp); fopen(file, "r"); while (fscanf(fp, "%d", &n) != EOF) { for (i=0; i<N && (n>= 64 && n%2 == 0); i++) { v2[i] = n; printf("%d ",v2[i]); } } printf("\n"); fclose(fp); return EXIT_SUCCESS; }
Editor is loading...