3 zadania C Problem

0

Cześć
Rozwiązuje zadania z programowania C, zostało mi 3 z zadań którymi mam problem.
Proszę o rozwiązanie lub nakierowanie na odpowiedz.

Zad 1. Napisz program, który wczytuje z klawiatury wartości całkowite,a następnie oblicza liczbę wartości nieparzystych.Program kończy się, gdy użytkownik poda wartość większą od 20 lub mniejszą od -20.

Zad 2. Napisz program, który wczytuje z klawiatury liczby rzeczywiste,a następnie oblicza średnią arytmetyczną wczytanych liczb ujemnych.Program kończy się, gdy użytkownik poda wartość nie należącą do przedziału <-100,100>.

Zad 3.Napisz program, który oblicza sumę cyfr dziesiętnych, danej liczby całkowitej dodatniej.

0

Zadanie 1

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

int main()
{
   int i;
   int suma;
   for (int i = -20; i < 20; ++i)
       printf("wprowadz liczbę");
   scanf("%i", i);
   if (i > -20 && i < 0)
       suma = (suma + 1);
   else if (i > 20 && i < -20)
       break;
   return 0;
}
3

Niestety Twój kod nie robi nic podanego w zadaniu - zacznijmy powoli, dzieląc zadanie na fragmenty:

Napisz program, który wczytuje z klawiatury wartości całkowite

Napisz i podeślij program, który wykonuje ten fragment polecenia.

0
Zrobiłem program w ten sposob działa lecz nie jest idealny 

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

int main()
{


int num;
int suma =0;
int stan;

printf("Podaj liczbe calkowita z przedzialu <-20,20>. ");
printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");

scanf("%i", &num);
    stan = num;

    while (stan>-20 && stan<20)
     {

if(stan<0)
      {

        suma=suma+num;}
    printf("Podaj liczbe calkowita z przedzialu <-20,20>. ");
    printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");

    scanf("%i",&num);
        stan = num;

        printf("%i", suma);

     }


     return 0;
}
3

No jak cię przycisnąć, to jest dużo lepiej.
Niestety kod nie robi tego co trzeba.

Tu masz wersję TWOJEGO kodu, z małymi poprawkami:

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

int main()
{
    int num;
    int suma = 0;

    printf("Podaj liczbe calkowita z przedzialu <-20,20>. ");
    printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");

    while (scanf("%i", &num) == 1 && num > -20 && num < 20) {

        if (num < 0) {

            suma = suma + num;
        }
        printf("%i\n", suma);
        printf("Podaj liczbe calkowita z przedzialu <-20,20>. ");
        printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");
    }

    return 0;
}

https://godbolt.org/z/oTYMfT

Teraz zamiast liczyć sumę liczb ujemnych, zrób to co mówi treść zadania:

  • oblicza liczbę wartości nieparzystych
  • Program kończy się, gdy użytkownik poda wartość większą od 20 lub mniejszą od -20
0

Dziękuje, analogicznie zrobilem zadanie 2

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

int main()
{
    float num;
    float suma = 0;
    float ilosc_liczb;
    float srednia;
    printf("Podaj liczbe calkowita z przedzialu <-100,100>. ");
    printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");

    while (scanf("%f", &num) == 1 && num > -100 && num < 100) {


            ilosc_liczb=(ilosc_liczb+1);
            suma = suma + num;
            srednia= (suma/ilosc_liczb);
        printf("%f\n", suma);
        printf("%f\n", srednia);
        printf("Podaj liczbe calkowita z przedzialu <-100,100>. ");
        printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");
    }

    return 0;
}
0

Mam problem z zadaniem 3

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

int main()
{
    float num;
    float suma = 0;
    float ilosc_liczb;
    float srednia;
    printf("Podaj liczbe calkowita z przedzialu <-100,100>. ");
    printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");

    while (scanf("%f", &num) == 1 && num > -100 && num < 100) {

if(num<0)
         {

            ilosc_liczb=(ilosc_liczb+1);
            suma = suma + num;
            srednia= (suma/ilosc_liczb);
        printf("%f\n", suma);
        printf("%f\n", srednia);
         }
        printf("Podaj liczbe calkowita z przedzialu <-100,100>. ");
        printf("Wpisz liczbe spoza przedzialu aby zakonczyc program. \n");
    }

    return 0;
}

0

Jesli chodzi o zadanie 3 znalazlem kawałek kodu ale nie wiem jak go zastosowac w C (strona 2)

https://pracownik.kul.pl/files/10382/public/Petle.pdf

0

Zrobiłem zadanie 3, proszę sprawdzić.

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

int main()
{
    int n;
    printf("Podaj liczbe calkowita");
    scanf("%i",&n);

    int rob=abs(n);
    int s=0;
    while(rob>0)
    {
         s += rob%10;
         rob /= 10;

    }
    printf("suma cyfr liczby %i wynosi %i",n,s);




    return 0;
}
1

Zrobiłem zadanie 3, proszę sprawdzić.

Pomijając, że jest to jawna kopiuj-wklejka, wygląda dobrze; wyrzuciłbym abs(n), skoro założeniem zadania jest to, że już otrzymujesz liczbę dodatnią.

1

Czegoś tu nie rozumiem, w zadaniu 1 napisano:- oblicza liczbę wartości nieparzystych
zrealizowano zaś: - suma liczb ujemnych
Czy tylko mi się wydaje że to lekko się różni?

#include <stdio.h>

int main()
{
	int Value=1234567;
	int suma=0;
	for(int N,V=Value;V;suma+=V-(N=V/10)*10) V=N;
	printf("%d",suma);
	return 0;
}

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