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