Aktív témák
-
vanek
tag
A feladat:
van egy etr azonosítom, + jel, hogy jelen volt "-" hogy nem volt jelen az orán és van 3 zh pontszám..
a problémám pedig az lenne, hogy kiderítsem, hogy a 3 szám közül melyik 2 a legnagyobb..az első kettő blokk jól működik..vagyis ami példákat néztem, azok jók voltak..
viszont a 3 blokkban, ahol, az 1. és a 2. szám a legnagyobb,
a 2. szám a legnagyobb és a másik kettő egyenlő valamint a 2. és a 3. szám a legnagyobbha ezekre adok példát, akkor valami miatt a második blokk
if(a[17] > a[18])
részénél leragad..sőt nem is jó eredményt ad..
#! /bin/awk -f
BEGIN {
split("NAGRAAT.SZE + + + + - - + + + + + + + + 5 6 5", a, " ")
max1=a[16]+a[17]
max2=a[16]+a[18]
max3=a[17]+a[18]
if (a[16] > a[17])
{
if(a[17] > a[18])
{
if(max1 >= 10)
{
print a[1]"vizsgazhat1+2elso"
}
else
{
print a[1] "nem vizsgázhat"
}
}else
{
if (a[16] >= a[18])
{
if (max2>=10)
{
print a[1] " vizsgazhat1+3elso"
}
else
{
print a[1] "nem vizsgazhat"
}
}
else
{
if (max2>=10)
{
print a[1] "vizsgazhat11+3elso"
}else
{
print a[1] "nem vizsgázhat"
}
}
}
}
else if (a[16] = a[17])
{
if(a[17] > a[18])
{
if(max1>=10)
{
print a[1]"vizsgazhat1+2masodik"
}
else
{
print a[1] "nem vizsgázhat"
}
}else
{
if (a[16] >= a[18])
{
if (max2>=10)
{
print a[1] " vizsgazhat1+3masodik"
}
else
{
print a[1] "nem vizsgazhat"
}
}
else
{
if (max2>=10)
{
print a[1] "vizsgazha11+3masodik"
}else
{
print a[1] "nem vizsgázhat"
}
}
}
}
else
{
if (a[16] >= a[18])
{
if (max1 >=10)
{
print a[1]"vizsgazhat1+2"
}else
{
print a[1] " nem vizsgázhat"
}
}else
{
if (a[16] = a[18])
{
if (max3 >=10)
{
print a[1] " vizsgazhat 2+1=3"
}else
{
print a[1] " nem vizsgazhat"
}
}else
{if(max3>=10)
{
print a[1]" vizsgazhat 2+3"
}else
{
print a[1] "nem vizsgazhat"
}
}
}
}
}köszi előre is..minden segítséget elfogadok!
-
Chipi333
csendes tag
Nem különösebben értek az AWK-hoz, az viszont biztos, hogy túlbonyolítod. Ha úgyis kiszámoltad max1, max2, max3-at akkor elég megézni hogy ezekből melyik a legnagyobb és akkor már tudod, hogy az a 2 szám volt a nagyobb amelyikekből azt összeraktad, és akkor erre a végtelen if-else fára nincs is szükség. És valszeg a problémád is megszűnik
-
vanek
tag
Sajna linuxban nem nagyon vagyok jó.. így cygwin segítségével csináltam meg a szkriptet..de a feladat azt írja, hogy
$ ./vizsgaztato.awk pontszamok.txt így kell futtatni..
a pontszamok.txt tárolja "NAGRAAT.SZE + + + + - - + + + + + + + + 5 6 5" ezt..
hogy tudom beolvastatni a sorokat?:\
köszi
Aktív témák
- Íme az új Android Auto!
- Gyúrósok ide!
- Politika
- Építő/felújító topik
- Új gyártástechnológiai útitervvel állt elő a TSMC
- Milyen billentyűzetet vegyek?
- Autós topik
- Napelem - 100%-os támogatású pályázat
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- További aktív témák...