Program v C - znaky

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
dark_stuff
Začátečník
Začátečník
Uživatelský avatar
Registrován: 23. bře 2006
Bydliště: Bruntál / Olomouc

Program v C - znaky

Příspěvek od dark_stuff »

Může mi někdo poradit, v čem dělám chybu? (Krom toho, že využívám zbytečně zdlouhavé if :-D)

Kód: Vybrat vše

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

main()
{ char x;
  char maxv;
  printf("\nProgram pro zjisteni znaku");
  printf("\nZadejte nejaky znak: ");
  scanf("%d", &x);
  maxv='Z';
  if (x='!')
	  printf("\nZnak je vykricnik");
  else 
  {
	if (x='@')
	  printf("\nZnak je zavinac");
	else 
	{
		if (x='?')
		printf("\nZnak je otaznik");
		else 
		{
			if (x='#')
			printf("\nZnak je krizek");
			else 
			{
			if (x='^')
			printf("\nZnak je striska");
			else 
			{
					if (x<=maxv)
					printf("\nZnak je velke pismeno %c", x);
					else 
					{
						if (x>maxv)
						printf("\nZnak je male pismeno %c", x);
						else 
						{
							if (x>=0)
							printf("\nZnak je cislo %c", x);
							else 
							{
							printf("\nZnak je neznamy znak");
						}
					}
				}
			}
			}
		}
	}
  }
							
system("pause");
  
}

Zadání: Napište v jazyku C program, který pro zadaný znak slovy vypíše, o jaký znak se jedná...

Pro malá písmena vypíše program text "male pismeno " a daný znak, pro velká písmena vypíše text "velke pismeno " a daný znak, pro číslice vypíše "cislice " a daný znak. Dále pro znaky "!", "?", "*", "@", "#", "^" vypíše odpovídající text: "vykricnik", "otaznik", "hvezdicka", "zavinac", "krizek", "striska". Pokud se jedná o jiný než výše uvedený znak, vypíše program text "jiny znak".
Naposledy upravil(a) bubanek dne pon 19. říj 2009, 13:23, celkem upraveno 1 x.
Důvod: Chyba je v tom, že je to ve špatné sekci ;-) přesun do PaW
Lidi jsou různí. Víc nesmím říct.
Černá karta je rasistická!
Maranov
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 21. črc 2006

Re: Program v C - znaky

Příspěvek od Maranov »

Nechápeš rozdíl mezi = a ==. Mrkni se do příručky na rozdíl a hned pochopíš kde je chyba. ;-)

A používej else if, nebo tady ještě lépe switch.

A maxv je proměnná proč? To by spíš měla být konstanta, ne? (nezapisuješ do ní nikdy, má pořád inicializační hodnotu.)

A piš slušně, dávej závorky jen tam, kde jsou nutné, správně odsazuj...
DESKTOP: C2D E8200 (pasivně); ATI HD 3870 (AC S1, 120 fan@5V); 4GB RAM; OCZ Vertex2 SSD 64GB; 320+320+250GB JBOD (odhlučněno); 2x FSC P19-2 (2056x1024)
MOBILE: Lenovo Thinkpad T420 4177 CTR, Crucial M4 SSD 128GB, 6GB RAM; FSC P19-2; Logitech G400
POCKET: Nokia Hulmia 800; Hitachi 500GB@Scythe Kamazo 2 (eSATA); Creative EP-630
AUDIO: Sennheiser HD 555 (foam mod), NuForce Icon µDAC, FLAC, ReplayGain, f2k

"A Man's mortality is a compass that points his way in life."
marek16
Začátečník
Začátečník
Uživatelský avatar
Registrován: 22. čer 2006
Bydliště: Brno

Re: Program v C - znaky

Příspěvek od marek16 »

hele, celý jsem to nečetl, ale už po pár řádcích je mi jasný že to prostě fungovat nemůže.

= je operátor přiřazení, říkáš jím počítači: přiřaď pravou hodnotu do levé!

Naproti tomu operátor rovnosti jsou dvě rovnítka (==) bez závorek a ten použiješ do těch svých IFů když chceš vyjádřit "pokud se X rovná deseti".
Ryzen 9800X3D | RTX 5080 16GB | 64GB DDR5 6000 CL30 | Gigabyte B650 Aero G | Samsung 990 PRO 2TB | LG BX 4K

Quis custodiet ipsos custodes?
beardie
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 10. srp 2005

Re: Program v C - znaky

Příspěvek od beardie »

jeden switch miesto 30 riadkov ifov...
¿ʇı ʇ,usı 'ƃuıʎouuɐ ʎʇʇǝɹd sı uʍop ǝpısdn ƃuıpɐǝɹ
Odpovědět

Zpět na „Programování a web“