Karakteres beolvasás és karakter kiíratás C-ben
A feladat az volt, hogy meg kellett adni 2 karaktert, és a köztük lévő egyéb karaktereket kiíratni. A C-ben karakter bekérésére c=getchar(), a kiíratására putchar(c) használatos, ahol c lehet karakter típus és egész szám is. Észre kellett közben venni, hogy a getchar()-t nem adhatjuk ki 2x egymás után, mert a 10-es karakter tárolódik a 2. getchar()-ban, úgyhogy helyette 3x adjuk ki, és akkor fut korrektül a program. A végére 2 elágazásba 2 ciklust tettem, a relációjelekkel pedig addig variáltam, ameddig nem adta ki a helyes eredményt a program. Megint nem tudom, mit miért csinál, azért sejtéseim vannak, ha a második karakter nagyobb, akkor csak simán kiíratja a számokat, de ha az első karakter nagyobb, akkor visszafelé számol a ciklus. Ez is kész van, és 2 óra helyett már csak 1 órába tartott megírni keresgélésekkel együtt. Úgy gondolom, lesz még gondom a karakterekkel és a stringkezeléssel bőven.
#include <stdio.h>
#include <stdlib.h>
int main()
{ char c, c2;
int sz, sz2;
printf("Irj be egy karaktert!\n");
c=getchar();
sz=c;
printf("Irj be meg egy karaktert!\n");
c2=getchar();
c2=getchar();
sz2=c2;
printf("A ket karakter kozott levo karakterek:\n");
if (sz2>sz)
for (int i=sz;i<=sz2;i++){
putchar(i);
}
if (sz>sz2)
for (int i=sz;i>=sz2;i--){
putchar(i);
}
return 0;
}
Ja, a C-ben létezik 3 operandusú operátor, ez a (logikai feltétel)?"szöveg":"szöveg", és a printf függvénnyel használjuk. Teljes hülyeség, hogy van ilyen, attól még létezik. Ez kellett a 7. feladat megoldásához, amit ennek híján csak if-fel lehet megoldani, bár, ha úgy vesszük, az if is 3 operandusú, de ez ezek szerint nem operátor, hanem feltétel... Íme egy program a 3 operandusú operátor használatára (ezzel is találkozni fogunk)... Egyébként csak megszokni nehéz (vagy rájönni)...
#include <stdio.h>
main()
{
int ffiz, tfiz;
printf("Kerem a fonokod fizeteset: ");
scanf("%d", &ffiz);
printf("Kerem a te fizetesed: ");
scanf("%d", &tfiz);
printf((ffiz>tfiz)?"A fonokod fizetese nagyobb, mint a tied!":"A te fizetesed nagyobb, mint a fonokode!");
}
Deprecated: mb_strrpos(): Passing the encoding as third parameter is deprecated. Use an explicit zero offset in /home/yesokhu/madinhungary.org/inc/_ext/_url_rel2abs.php on line 157