» »

[Naloga][C++] Velikost

[Naloga][C++] Velikost

cosa nostra ::

Podana imamo 3 števila. Izpiši jih po vrsti od najmanjšega do največjega .LP hvala za pomoč

Mesar ::

Your turn to burn!

cosa nostra ::

Mišleno je da uporabnik poda 3 števila in jih ti pol izpišeš na izhod (zaslon) od najmanšega do največjega.

PRIMER 12 , 54, 1 = 1 - 12 - 54

Zgodovina sprememb…

Smurf ::

Predlagam, da napises kaj si do sedaj naredil in poves kje se ti je zataknilo.

Denc ::

Prebereš vsa tri števila v polje

for(int i = 0; i < 3; i++)
cin >> polje[i];

nato pa jih med sabo primerjaš in zamenjaš
recimo z bubble sortom, kot ti je že Mesar predlagal

ter na koncu izpišeš kar imaš v polju.

Celotne naloge ti vrjetno na slo-techu nebo noben nardil, čeprav je dela zelo malo, ti pa bodo zagotovo pomagali.

cosa nostra ::

#include <iostream>
#include <list>

using namespace std;

int main()

{
    int velikost = 3;
    int st[3];
    int i;
    int j;
    int temp;
    i=0;
    for(; i <= velikost-1; )
    {
          cout << "Podaj poljubno  stevilo: " ;
          cin >> st[i];
          i=i+1;
    }
     i=0;
    for(; i <= velikost-2;)
    {
          j=0;
         for(; j <= velikost-2-i;)
          {
                if(st[j] > st[j+1])
                {
                       temp = st[j];
                       st[j] = st[j+1];
                       st[j+1] = temp;
                }
                j=j+1;
         }                     
      i=i+1;
     }  
                              
             
     cout << "Izpis od najmansega do najvecjega" << endl;
     cout << "===========" << endl;
     i=0;
     for(;i <= velikost-1;)
     {
           cout << "Stevilo " << i + 1 << ": " << st[i] << endl;
           i=i+1;
     }                    
    
system ("PAUSE");
return 0;
}


EVO to je to..malo pobrskal in spremenil.samo če bo treba nalogo razložit (ukaze pa uporabo) pa sn najebo

Zgodovina sprememb…

GupeM ::

Par nasvetov:

for zanko uprabljaj tako:
for (i = 0; 0 < velikost; i++)

S tem se izogneš vrsticam:
i=0;
i=i+1;

tudi
i <= velikost-1
postane enostavno
i < velikost


Tudi samo sortiranje je grozno napisano. Poskusi tako:
for(i = 0; i < velikost; i++)
{
   for(j = 0; j < velikost-1; j++)
   {
      if(st[j] > st[j+1])
      {
         temp = st[j];
         st[j] = st[j+1];
         st[j+1] = temp;
      }
   }                     
}  

Za izpis pa:
cout << "Izpis od najmansega do najvecjega" << endl;
cout << "===========" << endl;

for(i = 0; i < velikost; i++)
{
   cout << "Stevilo " << i + 1 << ": " << st[i] << endl;
}


Lahko bi popravil še kar nekaj stvari ampak zaenkrat naj bo to to :P

techfreak :) ::

Kaj to si našu tutorial kako uporabiti for zanko namesto while?:D

Blazzz ::

#include <vector> 
#include <iterator>
#include <algorithm>
#include <iostream>

int main()
{
    std::cout << "Vpisi stevila: ";

    std::vector<int> numbers;
    int input;
    while (std::cin >> input && numbers.size() < 3)
        numbers.push_back(input);

    std::sort(numbers.begin(), numbers.end());

    std::cout << "Sortirana stevila: ";
    std::copy(numbers.begin(), numbers.end(), std::ostream_iterator<int>(std::cout, ", "));
    std::cout << std::endl;

    return 0;
}



Glede na to da pises s c++, lahko uporabis STL, kjer imas vse ze implementirano.

cosa nostra ::

for zanko uprabljaj tako:
1
for (i = 0; 0 < velikost; i++)
Kaj se tiče te uporabe.Tega nesmemo uporabljat ker profesorja moti.Kao da se bomo mi zmedli pa neke.:))
Drgač pa hvala za nasvete

Zgodovina sprememb…

  • predlagal izbris: Urc ()

dope1337 ::

cosa nostra je izjavil:

for zanko uprabljaj tako:
1
for (i = 0; 0 < velikost; i++)
Kaj se tiče te uporabe.Tega nesmemo uporabljat ker profesorja moti.Kao da se bomo mi zmedli pa neke.:))
Drgač pa hvala za nasvete


Povej profesorju, naj neha učit dotični predmet prosim ... Mislim no, če vas pa ta človek želi naučit programirat (predvidevam), potem naj se loti zadeve tak kot je treba, ne pa da vas na pol vse uči.

@Blazz

Glede na to da uporabljaš knjižnico iostream, napiš še,:
using namespace std;
pod deklaracijo knjižnice, da ti ne bo treba skoz :: pisat.
"Everybody is a genius. But if you judge a fish by its ability to climb a tree
it will live its whole life believing that it is stupid."
-Albert Einstein

cosa nostra ::

int main() 
{
  short st1;
  short st2;
  string da;
  string znak;//operator
  float rezultat;
  
 
 
 
   
  cout<<"Podaj prvo stevilo: "<<endl;
  cin>>st1;
  if (st1<'0' or st1>'9')) // newem zakaj ne dela.
  { 
   cout<<"Nisi podal stevilke  0 - 9. Ponovi vnos"<<endl;
  }
  cout<<"Podaj drugo stevilo: "<<endl;
  cin>>st2
  
  
  
    do{
     cout<<"Podaj operator (+,-,*, / ali : )"<<endl;
     getline (cin, znak);
     if (!(znak=="+" or znak=="-" or znak=="/" or znak==":" or znak=="*"))
      {
       cout<<"To kar si dal ni operator ---> ponovi vnos"<<endl;
      }
   }while (!(znak=="+" or znak=="-" or znak=="/" or znak==":" or znak=="*"));
  
Rad bi preveril vnos . Za znake mi deluje da stevilke pa ne. Moj cilj je da če uporabik ne poda cifre 0-9 da zavrne vnos

Zgodovina sprememb…

Mesar ::

if (st1<0 || st1>9))


Zakaj tako? Premisli kakšne tipe spremenljivk primerjaš.

http://stackoverflow.com/questions/3683...
Your turn to burn!

Zgodovina sprememb…

  • spremenil: Mesar ()

cosa nostra ::

Ja številki. Če dam char pol mi tudi če napišem črko šteje.:)

Denc ::

Poskusi brati številko kot char, ki ga kasneje pretvoriš v število
kot imaš na tem primeru

cosa nostra ::

sem že rešil.
rezerviral z string potem pa čital getline().:D

Zgodovina sprememb…

joze-67 ::

Ker vidim da so zanke problem - poleg tega imamo samo tri števila in so zanke tako ali tako odveč.
int max(int a, int b)
{
    return (a+b+abs(a-b))/2;
}

int min(int a, int b)
{
    return (a+b-abs(a-b))/2;
}

int max(int a, int b, int c)
{
    return max(max(a, b), c);
}

int min(int a, int b, int c)
{
    return min(min(a, b), c);
}

void printInOrder(int a, int b, int c)
{
    int mi = min(a, b, c);
    int ma = max(a, b, c);
    cout << mi << ' ' << a+b+c-mi-ma << ' ' << ma;
}

mallard ::

@joze_67 Kaj pa je z vso to aritmetiko? Zakaj ne recimo:
return a >= b ? a : b;

?

Zgodovina sprememb…

  • spremenilo: mallard ()

Denc ::

mallard je izjavil:

@joze_67 Kaj pa je z vso to aritmetiko? Zakaj ne recimo:

return a >= b ? a : b;

?

Glede na to, da morajo uporabljati for zanko enako kot while, češ da se nebodo zmedli, potem veš kaj bi si njihov profesor mislil o tem if stavku.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] - Spreminjanje programa s pointerji

Oddelek: Programiranje
61178 (930) DaMachk
»

Vsota določenih elementov matrike [C]

Oddelek: Programiranje
10994 (682) RatedR
»

[C#] Domača naloga za faks

Oddelek: Programiranje
172093 (1717) Spura
»

Kalkulator

Oddelek: Programiranje
111315 (1082) lebdim
»

[JavaScript] Sortiranje šumnikov

Oddelek: Programiranje
152149 (1883) MarkookraM

Več podobnih tem