|
[ ivanzj @ 09.10.2008. 08:50 ] @
| potrebno je napraviti program, koji ce za uneto slovo ispisati odgovarajuci broj a za broj odgovarajuca slova.
Code:
#include <stdio.h>
#include <ctype.h>
int main ()
{
char z;
printf("upisite broj ili slovo.\n");
z=tolower(getchar());
switch( z )
{
case '2':
printf("a,b,c.\n",z);
break;
case '3':
printf("d,e,f.\n",z);
break;
case '4':
printf("g,h,i.\n",z);
break;
case '5':
printf("j,k,l.\n",z);
break;
case '6':
printf("m,n,o.\n",z);
break;
.
.
problem je sto ne znam da ga nateram da prepozna napr.10 i da ispise nesto tipa to ne postoji
hvala
|
[ karas @ 09.10.2008. 09:22 ] @
switch radi samo sa integralnim tipovima tako da
Code:
case '10':
ne mozes da koristis. Zapravo, '10' nije ni pravilno, treba "10". Ubaci jednu default granu za sve ostalo sto ne postoji.
[ StefanJer91 @ 09.10.2008. 10:10 ] @
Ako ti treba za proveravanje broja, koristi scanf
Code:
int b;
printf("Unesite broj: ");
scanf("%d", &b);
Posle radis proveru koja ti treba :) Inace razmisli o tome da ne koristis switcheve jer koliko vidim postoji pravilo kako se dobijaju slova tako da se to moze dosta skratiti. Recimo ako je:
0 a, b, c
1 d, e, f
2 g, h, i
...
onda moze nesto ovako (nisam testirao ali 99% radi)
Code:
char c = 'a'+b*3;
printf("%c %c %c\n", c, c+1, c+2);
EDIT:
Ovako ces i lakse moci da testiras da li ima neki broj odnosno ako je b > 9 ili ako je b < 0 onda program ne moze da radi :)
[ ivanzj @ 13.10.2008. 15:51 ] @
program mi izgleda ovako:
Code:
#include <stdio.h>
#include <ctype.h>
int main ()
{
char z;
printf("upisi neseto\n");
z=tolower(getchar());
switch( z )
{
case '2':
printf("na 2 su a,b,c.\n",z);
break;
case '3':
printf("na 3 su d,e,f.\n",z);
break;
case '4':
printf("na 4 su g,h,i.\n",z);
break;
case '5':
printf("na 5 su j,k,l.\n",z);
break;
case '6':
printf("na 6 m,n,o.\n",z);
break;
case '7':
printf("na 7 p,q,r,s.\n",z);
break;
case '8':
printf("na 8 t,u,v.\n",z);
break;
case '9':
printf("na9 w,x,y,z.\n",z);
break;
case '1':
printf("na 1 nisu nikakva slova.\n",z);
break;
case 'a' :
case 'b' :
case 'c' :
printf("broj 2 odgovara slovu %c na telefonu.\n",z);
break;
case 'd':
case 'e':
case 'f':
printf("broj 3 odgovara slovu %c na telefonu.\n",z);
break;
case 'g':
case 'h':
case 'i':
printf(" 4 \n",z);
break;
case 'j':
case 'k':
case 'l':
printf("5 %c \n",z);
break;
case 'm':
case 'n':
case 'o':
printf("6 %c\n",z);
break;
case 'p':
case 'q':
case 'r':
case 's':
printf(" 7 %c\n",z);
break;
case 't':
case 'u':
case 'v':
printf(" 8 %c\n",z);
break;
case 'w':
case 'x':
case 'y':
case 'z':
printf("9 %c\n",z);
break;
default :
printf( "%c nepravilno uneseno\n", z );
break;
}
return 0;
}
e sad, ovo nije dobro, posto kad upisem 12, on procita samo prvi znak tj. 1, isto tako i ako upisem vise slova npr. xfgfd, uzme x
kako da resim ovo?
[Ovu poruku je menjao X Files dana 13.10.2008. u 18:06 GMT+1]
[ Aleksandar Ružičić @ 13.10.2008. 16:34 ] @
koristi gets umetso getchar (i naravno treba ti neki buffer u koji ces da smestis unos)
[ ivanzj @ 15.10.2008. 23:56 ] @
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char z[10];
printf("Zadajte cislicu alebo pismeno.\n");
scanf("%s", z);
if(strlen(z) > 1)
printf("\n**ERROR*\n");
int i = 0;
while(i < strlen(z))
{
switch( z[i])
{
case '2':
printf("na 2 su a,b,c.\n",z);
break;
case '3':
printf("na 3 su d,e,f.\n",z);
break;
case '4':
printf("na 4 su g,h,i.\n",z);
break;
case '5':
printf("na 5 su j,k,l.\n",z);
break;
case '6':
printf("na 6 m,n,o.\n",z);
break;
case '7':
printf("na 7 p,q,r,s.\n",z);
break;
case '8':
printf("na 8 t,u,v.\n",z);
break;
case '9':
printf("na9 w,x,y,z.\n",z);
break;
case '1':
printf("na 1 nisu nikakva slova.\n",z);
break;
case 'a' :
case 'b' :
case 'c' :
printf("broj 2 odgovara slovu %c na telefonu.\n",z[i]);
break;
case 'd':
case 'e':
case 'f':
printf("broj 3 odgovara slovu %c na telefonu.\n",z[i]);
break;
case 'g':
case 'h':
case 'i':
printf(" 4 \n",z[i]);
break;
case 'j':
case 'k':
case 'l':
printf("5 %c \n",z[i]);
break;
case 'm':
case 'n':
case 'o':
printf("6 %c\n",z[i]);
break;
case 'p':
case 'q':
case 'r':
case 's':
printf(" 7 %c\n",z[i]);
break;
case 't':
case 'u':
case 'v':
printf(" 8 %c\n",z[i]);
break;
case 'w':
case 'x':
case 'y':
case 'z':
printf("9 %c\n",z[i]);
break;
default :
printf( "%c nepravilno uneseno\n", z [i]);
break;
}
return 0;
}
ovako sam uradio. Sad imam problem. Ispise mi i error, ali i vrednost za svaki znak ponaosob
[Ovu poruku je menjao ivanzj dana 16.10.2008. u 02:24 GMT+1]
[ ivanzj @ 16.10.2008. 09:26 ] @
ok
resio sam to
Code:
#include
<stdio.h>
#include
<string.h>
int
main ()
{
char z[100];
printf("Zadajte cislicu alebo pismeno.\n");
scanf("%s", z);
int i = 0;
if(strlen(z) > 1){
printf("\n**ERROR*\n");
}
else{
{
switch( z[i])
{
case '2':
printf("na klavese 2 sa nachadzaju pismena a,b,c.\n",z);
break;
case '3':
printf("na klavese 3 sa nachadzaju pismena d,e,f.\n",z);
break;
case '4':
printf("na klavese 4 sa nachadzaju pismena g,h,i.\n",z);
break;
case '5':
printf("na klavese 5 sa nachadzaju pismena j,k,l.\n",z);
break;
case '6':
printf("na klavese 6 sa nachadzaju pismena m,n,o.\n",z);
break;
case '7':
printf("na klavese 7 sa nachadzaju pismena p,q,r,s.\n",z);
break;
case '8':
printf("na klavese 8 sa nachadzaju pismena t,u,v.\n",z);
break;
case '9':
printf("na klavese 9 sa nachadzaju pismena w,x,y,z.\n",z);
break;
case '1':
printf("na klavese 1 nie su ziadne pismena.\n",z);
break;
case '0':
printf("na klavese 0 nie su ziadne pismena.\n",z);
break;
case 'a' :
case 'b' :
case 'c' :
case 'A' :
case 'B' :
case 'C' :
printf("Cislica 2 odpoveda pismenu %c na telefone.\n",z[i]);
break;
case 'd':
case 'e':
case 'f':
case 'D':
case 'E':
case 'F':
printf("Cislica 3 odpoveda pismenu %c na telefone.\n",z[i]);
break;
case 'g':
case 'h':
case 'i':
case 'G':
case 'H':
case 'I':
printf("Cislica 4 odpoveda pismenu %c na telefone.\n",z[i]);
break;
case 'j':
case 'k':
case 'l':
case 'J':
case 'K':
case 'L':
printf("Cislica 5 odpoveda pismenu %c na telefone.\n",z[i]);
break;
case 'm':
case 'n':
case 'o':
case 'M':
case 'N':
case 'O':
printf("Cislica 6 odpoveda pismenu %c na telefone.\n",z[i]);
break;
case 'p':
case 'q':
case 'r':
case 's':
case 'P':
case 'Q':
case 'R':
case 'S':
printf("Cislica 7 odpoveda pismenu %c na telefone.\n",z[i]);
break;
case 't':
case 'u':
case 'v':
case 'T':
case 'U':
case 'V':
printf("Cislica 8 odpoveda pismenu %c na telefone.\n", z[i]);
break;
case 'w':
case 'x':
case 'y':
case 'z':
case 'W':
case 'X':
case 'Y':
case 'Z':
printf("Cislica 9 odpoveda pismenu %c na telefone.\n", z[i]);
break;
default :
printf( "%c nie je spravny znak.\n", z[i] );
break;
}
i++;
}
}
return 0;
}
:D
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|