Test celeho cisla C – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Test celeho cisla C – C / C++ – Fórum – Programujte.comTest celeho cisla C – C / C++ – Fórum – Programujte.com

 

Lalo
~ Anonymní uživatel
19 příspěvků
27. 10. 2011   #1
-
0
-

Zdravim 

vedel mi mi niekto poradit v mojo programe? vsetko som urobil ako som mal len neviem osetrit vstup aby ked zadam desatinne cislo tak program skonci

#include<stdio.h>

int main()
{
int a;
printf("zadaj N cislo:\t");
scanf("%d",&a);

{
if ( a%2==0 )
if ( a%4!=0 )
printf("Je N delitelne 2 a nie je delitelne 4\n");
if (( a>=1 && a<=6 )&&( a>=2 && a<=4 )&&( a!=3 ))
printf("Je N v intervale <1,6> a zaroven v intervale <2,4> a nieje to cislo 3\n");
if (( a>10 || a<3 )&&( a!=2 ))
printf("Je N vacsie ako 10 alebo je mensie ako 3 a nie je to cislo 2\n");


return 0;
}
}

Nahlásit jako SPAM
IP: 85.216.195.–
street punk+1
Návštěvník
27. 10. 2011   #2
-
0
-

Toto zadanie už malo byť odovzdané jak sa mi zdá :D
no takže na zistenie či je číslo desatinné alebo celé nemôžeš používať int, lebo keď tam zadáš desatinné číslo, tak ti ho pretypuje na celé, takže odpoveď by bola vždy celé číslo. Tu to máš tak na hrubo, uprav si to jak chceš :)

#include<stdio.h>

int main()
{
	double a;
	printf("zadaj N cislo:\t");
	scanf("%lf", &a);

	a *= 10;
	if ((int)a % 10 == 0)
		printf ("Cele cislo\n");
	else 
		printf ("Desatinne cislo\n");


	return 0;
}
Nahlásit jako SPAM
IP: 147.175.179.–
Lalo
~ Anonymní uživatel
19 příspěvků
27. 10. 2011   #3
-
0
-

Dakujem 

ale nechapem preco mi teraz nechce porovnavat ci je delitelne 2, 4 a tak dalej

program som prerobil takto

#include<stdio.h>

int main()
{
float a;
  printf("zadaj N cislo:\t");
scanf("%f", &a);
a *= 10;
if ((int)a % 10 == 0)
{
  printf ("cilso N je cele!!!!\n");
  printf("cislo je %f\n", a);
  {
   if ((int)a % 2 == 0)
    if ((int)a % 4 != 0)
     printf("Je N delitelne 2 a nie je delitelne 4\n");
   if (( (int)a>=1 && (int)a<=6 )&&( (int)a>=2 && (int)a<=4 )&&( (int)a!=3 ))
    printf("Je N v intervale <1,6> a zaroven v intervale <2,4> a nieje to cislo 3\n");
   if (( (int)a>10 || (int)a<3 )&&( (int)a!=2 ))
    printf("Je N vacsie ako 10 alebo je mensie ako 3 a nie je to cislo 2\n");
  }
}
else
  printf ("cislo N je desatinne!!!!\n");

return 0;
}

Nahlásit jako SPAM
IP: 85.216.195.–
Lalo
~ Anonymní uživatel
19 příspěvků
27. 10. 2011   #4
-
0
-

#1 Lalo
Uz som si to vyriesil nejako som nevidel podstatne veci...... uz mi to hrabalo tak neskoro vecer. :D

A este raz dakujem

Nahlásit jako SPAM
IP: 85.216.195.–
street punk+1
Návštěvník
27. 10. 2011   #5
-
0
-

#3 Lalo
No problém tu je ten, že aké je presne zadanie. Lebo keď program zistí, že je to desatinné číslo, tak môže to vypísať a preskočí zisťovanie či je deliteľný tými číslami, lebo desatinné sa nedajú deliť modulom. Iná možnosť je, že keď je to desatinné, tak to pretypovať na int (tým prídeš o tú desatinnú časť, takže to už nieje to originál číslo, ktoré si vložil) a potom skúšať s modulom, či je deliteľné. A mimochodom, stačí to raz pretypovať a netreba všade dávať do zátvorky int. A pozor, v tvojom programe čo zisťuješ či je a deliteľné, už nemáš originál "a" ale vynásobené desiatimi. takže si tam daj ďaľšiu premennú

#include<stdio.h>

int main()
{
	double a;
	double b;
	printf("zadaj N cislo:\t");
	scanf("%lf", &a);

	b = a * 10;
	if ((int)b % 10 == 0)
	{
		printf ("Cele cislo\n");
		if (((int)a % 2 == 0) || ((int)a % 4 != 0))
			printf ("Cislo je delitelne 2 ale nieje delitelne 4\n");
		if (((a >= 2) && (a <= 4)) && a != 3)
			printf ("Cislo sa nachadza na intervale <2,4> a nie je to 3\n");
		if (((a > 10) || (a < 3)) && a != 2)
			printf ("Cislo je vacsie ako 10, mensie ako 3 a nieje to 2.\n");
	}
	else 
		printf ("Desatinne cislo\n");



	return 0;
}
Nahlásit jako SPAM
IP: 147.175.179.–
street punk+1
Návštěvník
27. 10. 2011   #6
-
0
-

sorry, nevedel som že už to máš :D..tak to vyzerá keď zároveň hrám na gitare a píšem program :D

Nahlásit jako SPAM
IP: 147.175.179.–
LALO
~ Anonymní uživatel
19 příspěvků
28. 10. 2011   #7
-
0
-

#6 street punk
Ja som to nakoniec urobil takto

 
#include<stdio.h>

int main()
{
	float a;
	int b;
	printf("zadaj N cislo:\t");
	scanf("%f", &a);
	a *= 10; /* mozem pouzit aj a = a * 10 */
	if ((int)a % 10 == 0)
	{
		printf ("cilso N je cele!!!!\n");
		a = a / 10;
		b = a;
		printf("cislo je %d\n", b);
		{
			if (( b % 2 == 0) && ( b % 4 != 0))
				printf("Je N delitelne 2 a nie je delitelne 4\n");
			if (( b >=1 && b <=6 )&&( b >=2 && b <=4 )&&( b !=3 ))
				printf("Je N v intervale <1,6> a zaroven v intervale <2,4> a nieje to cislo 3\n");
			if (( b >10 || b <3 )&&( b !=2 ))
				printf("Je N vacsie ako 10 alebo je mensie ako 3 a nie je to cislo 2\n");
		}
	}
	else
		printf ("cislo N je desatinne!!!!\n");

return 0;
}
Nahlásit jako SPAM
IP: 212.5.206.–
street punk+1
Návštěvník
29. 10. 2011   #8
-
0
-

#7 LALO
hej, ale tvojom prípade tam máš premennú b nazvyš. Ja som ju tam mal preto, lebo premennú "a" som si zmenil, aby som zistil či je to celé číslo, ale ešte predtým som hodnotu uložil do premennej "b" a potom v iných operáciách som spracoval stou pôvodnou hodnotou, ktorá je teraz v "b". Ale ty si si tú hodnotu vrátil späť na pôvodnú, takže premennú "b" tam mať nemusíš

Nahlásit jako SPAM
IP: 188.112.92.–
crazy
~ Moderátor
+10
Grafoman
29. 10. 2011   #9
-
0
-

#8 street punk
a co to zjišťovat takto:

if(fmod(cislo, 1) == 0)
	cele cislo
Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 63 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý