Prośba o pomoc, sprawdzenie kodu, udzielenie jakiś wskazówek.

0

Cześć, chciałabym poprosić Was o pomoc. Nie jestem pewna, czy poprawnie interpretuję treść zadania, które mam wykonać. Błagam o wskazówki i konstruktywną krytykę (dopiero uczę się programować, w internecie krąży wiele błędnych przykładów, na zajęciach nic nie jest wytłumaczone.)
Treść zadania:
Program na starcie pobiera od użytkownika rozmiar wektora.
Następnie deklaruje i wypełnia wektor losowymi liczbami (funkcja rand()).
Po wyczyszczeniu ekranu wyświetla menu:
Dla podanego zbioru liczbowego:

  1. Wylicz średnią
  2. Podaj ilość elementów
  3. Podaj sumę elementów
  4. Podaj maksimum i minimum
  5. Wydrukuj elementy (indeskowane)
  6. Zakończ program

Moja nieudolna próba rozwiązania:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int n, i=1;
int *wektor = (int*) malloc (sizeof(int)*n-1);
free (wektor);
printf("Podaj n:");
scanf("%d",&n);
int main;
{
  int i=1, zarodek;
    zarodek= time(NULL);
    srand(zarodek);   
    for(i= 1; i<= n; ++i)
        printf("%d. Liczba losowa to: %d", i, rand());
	}
system("cls");
{
	int a;
	int w, i, wynik, max=wektor[0], min=wektor[0];
	printf("Co chcesz zrobic? :\n");
printf("1. Policzyc sume elementow? :\n");
printf("2. Sprawdzic liczbe elementow wektora? \n");
printf("3. Obliczyc srednia wartosc elementow wektora? \n");
printf("4. Obliczyc maksimum? \n");
printf("5. Obliczyć minimum? \n");
printf("6. Zobaczyc wartosci wektora? \n \n");
printf("7. Zakończ program.");
printf("Wybierz proces.");
scanf("%d",&a);

if(a == 1)

{
	for(i=1;i<n;i++)
	{
		w=w+wektor[n];
		}
		wynik=w;
		printf("%d \n",wynik);
}
if(a == 2)
	{
	wynik=n;
	printf("Liczba elementow wektora to: \n",wynik);
	}

if(a == 3)


	for(i=1;i<n;i++)
	{
		w=(w+wektor[n])/n;
		}
		wynik=w;
		printf("%d \n",wynik);
		
}

if(a == 4)
	for(i=1;i<n;i++)
	{ int i_max, max;
 
i_max = 0;
max = a[0];
i = 1;
while (i <n) 
{
  if (wektor[i] > max)
  {
    i_max = i;
    max = a[i];
  }
  i++;
}
		
	
}
if(a == 5)
	for(i=1;i<n;i++)
	{int i, i_max, max;
 
i_max = 0;
max = a[0];
i = 1;
while (i < n) 
{
  if (wektor[i] > max){
    i_max = i;
    max = a[i];
  }
  i++; 
}
		
	}

if(a == 7)
	{ 
	Close(); 
		}
}

Z góry dziękuję za chęć udzielenia pomocy.

Wstawiaj kod w tagi code - msm.

0

Deklarujesz tablicę przed podaniem rozmiaru?oO
Albo ja już nie myślę dzisiaj, albo to jest jakaś bujda.

int n, i=1;
int *wektor = (int*) malloc (sizeof(int)*n-1);
free (wektor);
printf("Podaj n:");
scanf("%d",&n);

Tagi! Aż się boję to czytać...

EDIT:

  • Losujesz liczby, ale nie wsadzasz ich do tablicy.
  • Zapoznaj się z czymś takim, jak switch

Ciężko to czytać, ale na starcie już są 3 poważne błędy. Popraw, otaguj i sformatuj kod. Będziemy dalej rozmawiać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1