Witam. Od jakiegoś czasu uczę się programować w C. Kompilator z którego korzystam to Code::blocks. Chciałbym prosić was o zostawienie opinii o moich programach. Miło byłoby również zobaczyć jak wy byście to napisali. Zapraszam do dyskusji i pozdrawiam!
1. Program ma wczytywać liczby całkowite z klawiatury do chwili, gdy ich amplituda (różnica między największą, a najmniejszą wczytaną liczbą) przekroczy podaną przez użytkownika liczbę. UŻYJ PĘTLI WHILE.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int liczba, lmax, lmin;
printf("Wprowadz liczbe: ");
scanf("%d",&liczba);
lmax=liczba;
lmin=liczba;
while(lmax-lmin<=liczba)
{
printf("Wprowadz liczbe: ");
scanf("%d",&liczba);
if(liczba>lmax)
lmax=liczba;
//printf("lmax %d",lmax);
if(liczba<lmin)
lmin=liczba;
//printf("lmin %d",lmin);
}
return 0;
}
2.Napisz program, który wykorzystujac wzór Herona na pole trójkąta (P=pierwiastek z p(p-a)(p-b)(p-c), gdzie p jest połową obwodu trójkąta, a,b,c długościami boków trójkąta).
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c;
float p, pole;
printf("Wpisz boki trojkata: \n");
scanf("%d %d %d",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
/*printf("a=%d b=%d c=%d",a,b,c);*/
p=(a+b+c)/2.0;
pole=sqrt(p*(p-a)*(p-b)*(p-c));
printf("Pole trojkata jest rowne %.4f",pole);
}
else
printf("Taki trojkat nie istnieje!");
return 0;
}
3. S**J Odrzuca mój kod, a działa prawidłowo, co waszym zdaniem jest nie tak? Jest to program na liczby pierwsze z zakresów podanych w programie.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int i, j, x;
printf("Ile liczb chcesz sprawdzic? ");
scanf("%d",&n);
while(n>=100000)
{
printf("Sprawdzamy ponizej 100000 liczb!.\n");
printf("Ile liczb chcesz sprawdzic?");
scanf("%d",&n);
}
printf("Kolejno wprowadzaj liczby: \n");
for(i=1; i<=n; i++)
{
scanf("%d",&x);
if(x>10000||x<1)
{
printf("Wprowadz liczbe z przedzialu [1;10000]!");
scanf("%d",&x);
}
int ok=1;
for(j=2; j<x; j++)
{
if(x%j==0)
ok=0;
}
if(ok&&x>2)
printf("TAK\n");
else
printf("NIE\n");
}
return 0;