Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int read_array(const char *name, double *a, unsigned int n);
- void print_array(double *a, unsigned int n);
- int f(double *a, unsigned int n);
- /* Ф-ия возвращает 1, если масиив симметричный. 0, если нет.*/
- int f(double *a, unsigned int n)
- {
- unsigned int i;
- for( i = 0; i<n/2; i++ )
- {
- if( a[i]!=a[n - 1 - i] )
- return 0;
- }
- return 1;
- }
- void print_array(double *a, unsigned int n)
- {
- unsigned int i;
- for( i = 0; i<n; i++ )
- printf("a[%u]==%lf\t", i, a[i]);
- printf("\n");
- }
- int read_array(const char *name, double *a, unsigned int n)
- {
- FILE *input;
- unsigned int i;
- if( !(input = fopen(name, "r")) ) return -1;
- for( i = 0; i<n; i++ )
- {
- if( fscanf(input, "%lf", a + i)!=1 )
- {
- fclose(input);
- return -2;
- }
- }
- fclose(input);
- return 0;
- }
- int main(int argc, const char *argv[])
- {
- unsigned int n;
- int res;
- double *a;
- if( (argc!=3) || (sscanf(argv[1], "%u", &n)!=1) )
- {
- fprintf(stderr, "Usage: %s [length] [file]\n", argv[0]);
- return -1;
- }
- a = (double *)malloc(n*sizeof(double));
- if( !a )
- {
- fprintf(stderr, "Not enough memory!\n");
- return -2;
- }
- res = read_array(argv[2], a, n);
- if( res<0 )
- {
- switch(res)
- {
- case -1:
- fprintf(stderr, "Can not open %s\n", argv[2]);
- return 0;
- case -2:
- fprintf(stderr, "Can not read %s\n", argv[2]);
- return 0;
- default:
- fprintf(stderr, "Unknown error %d in %s\n", res, argv[2]);
- return 0;
- }
- }
- printf("f() returned %d\n", f(a, n));
- print_array(a, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement