Hogyan írnátok ilyen algoritmust?
Írjon algoritmust, mely beolvas maximum 20db nullától különböző egész számot. A beolvasás végét a bevitt "0" számjegy, vagy a 20. bevitt érték jelenti.
Írassa ki a második legnagyobb beolvasott szám értékét !
Én valami ilyesmire gondoltam (eleje valószínűleg hibás, talán a vége is):
BE(20): X
Ha X(i) == 0 AKKOR vége
Ciklus maximumkiválasztás
MAX:=X(1)
Ciklus X:=2-től N-ig
Ha X(i) > X(MAX), akkor MAX:=i
Ciklus vége
KI: MAX
Ebben megtudnátok mondani mi a hibám, vagy hogyan kéne megoldani ?
i := 1
ciklus amíg i <= 20 és x[i] <> 0
___be: x[i]
___i := i + 1
cvége
ciklus j := 1..(i-1)
___ciklus k := 2..i
______ha x[j] < x[k] akkor csere(x, j, k)
___cvége
cvége
ha i > 1 akkor
___ki: x[2]
különben
___ki: x[1]
hvége
_: ezek a kiemelés miatt kellenek, mert itt nem lehet ám akármennyi szóközt írni sajnos
javítanék a válaszomon:
i := 0
ciklus
___i := i + 1
___be: x[i]
amíg i <= 20 és x[i] <> 0
Itt egy Java-s megoldás, annyi különbséggel, hogy tömböket használ, és a tömböket 1-től 20-ig véletlenszámokkal tölti fel.
import extra.*;
public class Db_20
{
public static void main(String[] args)
{
final int Max=20;
int ir[]=new int[Max];
for(int i=0; i<Max; i++)
{
ir[i]=(int)(Math.random()*20);
System.out.print(ir[i]+"\n"); //tomb feltoltese szamokkal
}
int max=0;
for(int j=0; j<Max; j++)
{
max=max;
if(max<ir[j])
{
max=ir[j];
}
}
System.out.print(max);
int bmax=0;
for(int f=0; f<Max; f++)
{
bmax=bmax;
if((bmax<ir[f])&&ir[f]<max) //maximum elotti szamot nezi...
{
bmax=ir[f];
}
}
System.out.print(bmax);
}
}
Itt van c++ ban:
//main.cpp
#include<iostream>
#include<algorithm>
#include<time.h>
using std::cout;
using std::endl;
using std::sort;
typedef unsigned short ushort;
int main(void){
srand(time(0));
const ushort maxNumber = 20;
ushort randomArray[maxNumber];
cout << "A szamok: ";
for(ushort i = 0; maxNumber > i; ++i){
randomArray[i] = rand() % 100 + 1;
cout << randomArray[i] << " ";
}
sort(randomArray, randomArray + maxNumber);
cout << "\nA masodik legnagyobb szam a: " << randomArray[18];
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!