Untitled
unknown
plain_text
4 years ago
1.5 kB
8
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...