[ Vladica Savić @ 23.05.2007. 10:41 ] @
Molio bih moderatore da ne brisu ovo bar do veceras, tema sam postavio na dva mesta, ali radi brzeg odgovora molio bih da ne brisu nista do veceras bar...
Tekst problema:
Citat:

Napisati program na jeziku C koji proverava poznavanje engleske abecede. Korisnik unosi slova engleske abecede u bilo kom redosledu obliku rečenice, a zatim program prikazuje celu abecedu na sledeći način: slovo koje je korisnik uneo tačno jednom prikazuje se kao malo slovo, a slovo koje je korisnik uneo više puta ili nijednom, prikazuje se kao veliko slovo. Ukoliko je korisnik uneo sva slova abecede tačno po jednom, prikazuje se samo poruka "BRAVO!"

Please Treba mi brza pomoc TNX unapred
[ andor @ 23.05.2007. 14:44 ] @
Tesko da ce ti neko uraditi domaci zadatak. Bar da si pokusao da ga uradis sigurno bi ti neko pomogao
[ rumpl @ 23.05.2007. 14:56 ] @
Code:

#include <stdio.h>  // Za printf
#include <stdlib.h> // Za malloc, free...
#include <string.h> // Za strlen

#define BUFF_LEN 1024 // Maximalna duzina linije koju korisnik upisuje
#define ABC_LEN 26    // Broj slova u engleskoj abecedi

int main(int argc, char *argv[])
{
  int i;
  /* 
  ** Linija koju upisuje korisnik 
  */
  char *line; 
  /*
  ** Sadrzi broj unetih slova 
  */
  int *abc;
  
  line = malloc(sizeof(char) * BUFF_LEN);
  abc = malloc(sizeof(int) * ABC_LEN);
  
  /*
  ** U pocetku, nemamo nijedno slovo, znaci, abc je zvugde jednak nuli
  */
  memset(abc, 0, sizeof(int) * ABC_LEN);
  
  /* 
  ** Citamo liniju
  */
  read(0, line, BUFF_LEN);
  
  /*
  ** Gledamo celu liniju 
  */
  for(i = 0; i < strlen(line); i++)
    {
      /*
      ** Ako je malo slovo, stavim ga u veliko 
      */
      if(line[i] >= 97 && line[i] <= 122)
    {
      line[i] = line[i] - 32;
    }
      
      /* Ako je karakter slovo, inkrementiram abc[line[i] - 65]
      ** na primer, ako je slovo A = 65 (ascii), onda abc[65 - 65]++
      **  znaci, abc[0] = 1 itd.
      */
      if(line[i] >= 65 && line[i] <= 90)
        {
      abc[line[i] - 65]++;
        }
    }
  
  /*
  ** Gledamo prvo da li imamo sva slova abecede 
  */
  for(i = 0; i < ABC_LEN; i++)
    {
      if(abc[i] != 1)
    break;
    }

  /* 
  ** Ako ima, BRAVO, i bezimo 
  */
  if(i == ABC_LEN)
    {
      printf("BRAVO!\n");
      free(abc);
      free(line);
      exit(0);
    }

  /* Ako je abc[i] == 1, znaci da smo uneli samo jednom neko slovo,
  ** izbacujemo malo slovo, ako abc[i] != 1, onda izbacujemo veliko slovo
  */
  for(i = 0; i < ABC_LEN; i++)
    {
      if(abc[i] == 1)
    {
      printf("%c", i + 97);
    }
      else
    {
      printf("%c", i + 65);
    }
    }
  
  printf("\n");
  
  free(abc);
  free(line);
  
  return(0);
}


Nisam uopste gledao moguce greske malloc-a ili read-a, to tebi ostavljam.
A ti sedi i uci da programiras. Imao si srece ovog puta sto mi se ne uci pas trazim izgovore da ne pocnem da ucim.
[ andor @ 23.05.2007. 15:09 ] @
pogledaj ovaj link
http://faq.cprogramming.com/cg...r=1044652485&id=1043284385



[Ovu poruku je menjao andor dana 23.05.2007. u 16:23 GMT+1]
[ Vladica Savić @ 23.05.2007. 19:24 ] @
TNX ljudi Pogotovu tebi rumpl
BTW (offtopic) - rumpl Preporucujem Delphi ako ces da radis sa paskalom
Pozdrav i hvala svima
[ rumpl @ 23.05.2007. 19:35 ] @
Ako pogledas sa leve strane mog posta, videces da sam na linuxu, a Delphi-ja nema za linux.
A pascal sam odavno batalio, jos od gimnazije...
[ Vladica Savić @ 23.05.2007. 23:07 ] @
(offtopic) Imas Lazarus
[ rumpl @ 24.05.2007. 12:39 ] @
Hehe...