Proszę o sprawdzenie poprawności programów w c

0

Mam pewien problem mam do napisania trzy programy w języku C ale niestety nie mam pojęcia jak to zrobić...

  1. napisz program drukujący trojkat przyprostokatny o przyprostokatnych n. Wartosc n pobrac od uzytkownika. Zapewnic poprawnosc wprowadzonych danych (n jest liczba calkowita, nieujemną)
    n=5
    1
    12
    123
    1234
    12345

2.Napisac program sprawdzajacy, czy kolejne podawane przez utykownika liczby sa parzyste . Po zakonczenu sprawdzania kazdej pary liczb uzytkownik powinien miec mozliwosc wyboru czy wczytac kolejna liczbe czy zakonczyc program. Wcisniecie T lub t powinno oznaczac chec kontynuowania. Po zakonczeniu testowania Wyswietlic podsumowanie postaci - "Sprawdzono ... liczb" i "wystapiło ... liczb parzystych..."

3.program obliczajacy sume k kolejnych wyrazow szeregu postaci
s=epsilon n=a n/n 2(n+1) gdzie nEN
Wartosc parametru a i b pobrac od uzytkownika. Wymusic wprorowadzenie poprawnych danych (a>0 b>0 a>b)

To jest moje rozwiazanie 3. czy ono jest dobrze?

#include <stdio.h>
#include <math.h>
int main ()
{
    int n=1.0;
    float suma;
    int a,b;
    printf("Podaj parametr a= ");
     scanf("%d",&a);
     fflush (stdin);
     printf ("Podaj parametr b= ");
     scanf("%d",&b);
     fflush(stdin);
    for (a>0; a<b;a++) 
   { suma=a/pow(a,2)*(a+1);
    printf("suma wynosi = %f\n",suma);
}
if (a>b){
                 
printf("Podane zmienne sa nieprawidlowe a>b\n");

                 }     
getchar();
return 0;
}

Pomógłby ktoś?

0

To jest moje rozwiazanie 3. czy ono jest dobrze?

A działa? Nie działa, więc nie jest dobrze.

Co do samego wzoru, to nie wiem, czy ma prawo działać, bo zapis który podałaś jest niezrozumiały.
Daj go w TeXie.

Ale co do kodu...
Nie sądzisz, że logiczniej dać sprawdzanie poprawności zmiennych przed liczeniem sumy? I pozwolić userowi poprawić błędne dane?

    do
    {
    wczytaj a;
    wczytaj b
    }
    while(b<0 || b<a);
    licz sumę;

for (a>0; a<b;a++) - co według Ciebie robi a>0 ?

W samej pętli zaś masz wypisywanie wyniku? Po co? Przecież interesuje Cię suma - wypisz ją poza pętlą.

Do tego - po co Ci nieużywana zmienna n?
Zaś zmienną suma powinnaś najpierw wyzerować.

0

taki jest ten wzor

zad3.png

0
#include <stdio.h>
int main()
{
    
    double suma=0;
    double suma2=0;
    int n;
    int b;

    do
    {
    printf("Podaj parametr n:");
    scanf("%d",&n);
    printf ("Podaj parametr b:");
    scanf("%d",&b);
    }
    while(b<0 || b<=n);

    int a;
    for (a=n; a<=b;a++)
    {
        suma=(1.0*a)/( (a*a)*(a+1) );
        suma2=1.0/(a*a + a);
    }

    printf("Suma wynosi %f\n a suma2 wynosi %f\n",suma,suma2);

    getchar();
return 0;
}

Tak to chyba powinno wyglądać. Wzór trochę bezsensowny, pod suma2 masz jego uproszczenie.

PS KONIECZNIE Porównaj http://pl.wikipedia.org/wiki/Epsilon z http://pl.wikipedia.org/wiki/Sigma i wyciągnij wnioski.

0

hmmm... no to widzę już mój błąd...

0
#include<stdio.h>

 

 
int main()
{
    int liczba;
 
    printf ("Podaj liczbe: ");
   scanf ("%d", liczba);
 
    if (liczba % 2 == 0)
        printf ("Liczba %d jest parzysta.",liczba);
    else
        printf( "Liczba %d  jest nieparzysta.",liczba);
 
    getchar();
    return 0;
}
 

a takie coś do 2?

0
int main()
{
    int liczba;
int parzyste=0;
int nieparzyste=0;
int wsieliczby=0;
 
    while(1)
	{
		printf ("Podaj liczbe: ");
		scanf ("%d", liczba);
		wsieliczby++;
 
		if (liczba % 2 == 0)
        {	
			printf ("Liczba %d jest parzysta.",liczba);
			parzyste++;
		}
		else
        {
			printf( "Liczba %d  jest nieparzysta.",liczba); 
			nieparzyste++;
		}
		char znak;
		printf ("Podaj T lub t by kontynuowac")
		scanf ("%c", znak); //%c pobiera chara? Nie pamiętam...
		if(znak=='t' || znak=='T') 
			continue;
		else 
			break;
    }
		printf( "wsiego: %d,parzystych: %d, nieparzystych: %d",wsiego, parzyste, nieparzyste);
    getchar();
    return 0;
}

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