Proste zadanko z C Proszę Cię pomóż :(

0

Dzień dobry/Dobry wieczór, mam problem z rozwiązaniem takiego zadania czy ktoś mógłby mnie poratować.

a) Napisz program który będzie losował liczbę z określonego przedziału liczbowego wyświetlał kolejne liczby z przedziału w linii rosnąco i na końcu zsumuje je wszystkie.

b) Następnie program znowu zapyta o nowy przedział wyświetli te liczby ale w odwrotnej kolejności i również zsumuje je.

c) Znowu zapyta o nowy przedział, tym razem wyświetli cyfry w kolumnie i poda średnią arytmetyczną. Na koniec program zapyta czy wykonać wszystko ponownie, jeżeli klikniesz T-tak jeżeli N-nie.

Na chwilę obecną mam tyle, będę wdzięczny za każdą wskazówkę. Dzięki :)

#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <time.h>

int main()
{ 
    srand(time(NULL));
    int i=0, liczba=0, x, y, suma=0;
    
   printf("Podaj zakres wyświtlanych liczb\n");
   
    scanf_s("%d\n", &x);

    scanf_s("%d", &y);


      liczba = x + rand() % (y - x + 1);

        printf("%d\n", liczba);

        
            for (i=x; i <= liczba; ++i) {
                printf("%d  ", i);            
            }
            suma = liczba + i;
            printf("%d", suma);
      
        system("PAUSE");
    return 0;
}
  • nie sumuje mi na końcu
3

Żeby zsumowac liczby trzeba:

  1. Wyzerować sumę
  2. W pętli dodawać kolejne liczby

U ciebie suma = liczba + i; jest poza pętlą, więc co ty tam niby dodajesz? Jakby pisać po ludzku i zmienne deklarować w najwęższym zakresie, tzn for (int i=x; i <= liczba; ++i) { to kompilator sam by ci powiedział że poza pętlą zmienna i nie ma żadnego sensu.

0

@Shalom: ok podpunkt a) hula aż miło w podpunkcie b będzie to samo tyko że trzeba zmienić parametry pętli for na coś z odejmowaniem zgadza się?

EDIT
tak to aktualnie wygląda

#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <time.h>
#include <locale.h>

int main()
{ 
    setlocale(LC_CTYPE, "Polish"); //Wyświetlanie polskich znaków
    
    srand(time(NULL));

    int  liczba=0, x, y, suma=0;
    
    printf("Podaj zakres wyświtlanych liczb\n");
   
        scanf_s("%d\n", &x);

        scanf_s("%d", &y);


      liczba = x + rand() % (y - x + 1);

        printf("%d\n", liczba);

        
            for (int i=x; i <= liczba; ++i) {
                printf("%d  ", i); 
                
                suma += i;                                    
            }
            
            printf("Suma liczb wynosi  %d", suma);
      
        system("PAUSE");

        //Zadanie 2

        printf("Podaj zakres wyświtlanych liczb\n");

        scanf_s("%d\n", &x);

        scanf_s("%d", &y);


        liczba = x + rand() % (y - x + 1);

        printf("%d\n", liczba);

        int cyc = liczba;
        suma = 0;
        for (int i = x; i <=liczba; ++i) {


            suma += cyc;
            printf("%d  ", cyc);
            cyc = cyc - 1;
          
        }

        printf("Suma liczb wynosi  %d", suma);





        system("PAUSE");


    return 0;
}

b) zrobione jako tako ale działa, pomysł jak to uprościć?

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