Program sprawdza, czy liczba argumentów jest poprawna. Jeśli nie, drukuje stosowny komunikat i kończy swoje działanie.
Program konwertuje argumenty na odpowiednie typy danych.
Program sprawdza, czy podane argumenty są poprawne. Jeśli nie, drukuje stosowny komunikat i kończy swoje działanie.
Program wywołuje funkcję lintab() z podanymi argumentami begin, end i n i przypisuje jej wynik do wskaźnika tab.
Program drukuje wartości tablicy tab na standardowe wyjście.
Program zwalnia pamięć zaalokowaną dla tablicy tab.
Funkcja lintab() implementuje algorytm podany w zadaniu i zwraca wskaźnik na pierwszy element tablicy utworzonej za pomocą dynamicznej alokacji pamięci.
1 votes Thanks 1
Weberowsky
nie testowane, w razie bledow pisz w komentarzach
mateuszburek86
pomożesz mi jeszcze w innych zadaniach ???
mateuszburek86
zadania są na moim profilu, będę bardzo wdzięczny za pomoc :)
Odpowiedź:
#include <stdio.h>
#include <stdlib.h>
double* lintab(double begin, double end, int n);
int main(int argc, char *argv[]) {
if (argc != 4) {
printf("Niepoprawna liczba argumentow. Wywolanie programu powinno wygladac nastepujaco:\n");
printf("./ex01 begin end n\n");
return 1;
}
double begin = atof(argv[1]);
double end = atof(argv[2]);
int n = atoi(argv[3]);
if (begin >= end || n <= 0) {
printf("Niepoprawne argumenty. Upewnij sie, ze begin < end oraz n > 0.\n");
return 1;
}
double *tab = lintab(begin, end, n);
for (int i = 0; i < n; i++) {
printf("%lf ", tab[i]);
}
printf("\n");
free(tab);
return 0;
}
double* lintab(double begin, double end, int n) {
double* tab = (double*)malloc(n * sizeof(double));
for (int k = 0; k < n; k++) {
if (k == n - 1) {
tab[k] = end;
}
else {
tab[k] = ((k * (end - begin))/(n - 1)) + begin;
}
}
return tab;
}
Wyjaśnienie: