252
C programozás help
  • z7server
    #252
    Akit esetleg érdekel:

    C nyelv alapelemei

    C-n kívül más programozási nyelvek is megtalálhatók az oldalon.
    Oldal érdekessége hogy össze lehet hasonlítani az egyes programozási nyelveket,
    előnyös lehet ha valami más programozási nyelvben már jártas vagy és meg szeretnéd tudni hogy ugyanaz a parancs hogy néz ki pl. C ben.
  • Livius
    #251
    Akit esetleg érdekel, az ELTE-éről Porkoláb Zoltán C Programozás egyetemi előadása itt elérhető, folyamatosan kerülnek fel az új részek ebből a félévből!

    C programozás - Porkoláb Zoltán (2017) [YouTube]
    Utoljára szerkesztette: Livius, 2017.11.04. 00:03:59
  • NorBear
    #250
    Sziasztok!

    A segítségeteket szeretném kérni az alábbi témakörben: Motorola protokoll, soros port kommunikáció
    Csomag alapú kapcsolatot kéne megvalósítani, ahol a beérkező/továbbítandó csomagokat dinamikusan kell letárolni a memóriába. Az érvénytelen vagy túl nagy méretű csomagokat a "rendszer" eldobja.

    Csomag alapú kommunikációnál (pl: TCP) általában szokott lenni CRC ellenőrzés, nyugtázás , sorszámozás, címzés stb...
    Hogyan lehet ezt realizálni a motorola protkoll esetében?
  • Dj Faustus #249
    Ha jól értem, van egy ehhez hasonló mérési adatsorod: http://pastebin.com/yKgTBSeA
    és egy ilyen modell adatsorod: http://pastebin.com/uNksmGw6
    és a modell adatsorod első oszlopának értékeit kell a mérési adatsor első oszlopában található értékek által meghatározott intervallumok közé tenni, és lineáris interpolációt végezni rajtuk.

    Egy régebbi hozzászólásom (http://sg.hu/listazas_msg.php3?id=1079095647&no=189) példakódját (http://pastebin.com/9FTpFUNC) felhasználva készítettem egy példát: http://pastebin.com/psZhQAwu

    Nincs optimalizálva, hibakezelés sincs benne, gcc alatt teszteltem és lefut.
  • C0mputers
    #248
    Sziasztok!
    Kéne egy kis segítség! Van egy mérési, adatfájlom két oszloppal. Meg van egy modell adatfájl, aminek az egyik oszlopának értékeit a mérési fájl megfelelő oszlopának értékei közé esnek, és interpolálni kellene a modell fájl negyedik oszlopának adataira.

    Tehát lineáris interpolációt kellene csinálni, van pár példa progi a neten, de nem igazán tudom átalakítani olyanná, amilyen nekem kell, hogy a fájlokból rántsa be az adatokat, összehasonlítsa a modell adatain végig menve a számértékeket, hogy mely mérési értékek közé esnek, és ebből interpoláljon.

    Van valaki, akinek esetleg ez megy?
    Köszi
  • Dj Faustus #247
    "A feladat az, hogy töltsünk fel egy 100elemes stringet 'a' kezdőértékkel, és utána 0.25-el csökkenjen mindig a többi."
    Hát ennek a feladatnak se füle, se farka.

    Mert ha a sztring első eleme az 'a' betűt (ASCII-kódja: 97):
    char sztringem[100];
    int i;

    void main() {

    sztringem[0] = 'a';

    és minden következő elem 0.25-tel kisebb:
      for (i=1; i<100; i++) {
    sztringem = sztringem[i-1] - 0.25;
    }
    for (i=0; i<100; i++) {
    printf ("%d %c %d\n", i, sztringem[i], sztringem[i]);
    }
    }

    akkor a típuskonverzió miatt mindegyik következő elem az eggyel kisebb ASCII-kódú értéke lesz.

    Így a [i]"hány olyan van ami egész" kérdés értelmét veszti - hisz az összes az.

    "meg kell számolni a mássalhangzók, és a magánhangzók számát,"
    Külön-külön (mássalhangzók és a magánhangzók) vagy egy összesen?

    "Ezt eddig nekem csak úgy sikerült, hogy két külön sajátfüggvényben számoltam meg őket külön."
    Ha külön-külön akarod kezelni, használj két globális változót, amit a saját függvényedben módosítasz:
    int mgh; //Magánhangzók
    int msh; //Mássalhangzók

    //Ez csak egy példa a saját függvényben való változó használatra
    void sajatfgv() {
    mgh = 12;
    msh = 14;
    }

    void main() {
    sajatfgv();
    printf("Magánhangzók száma: %d\nmássalhangzók száma: %d\n",mgh, msh);
    }
  • hunterrop
    #246
    sziasztok, egyetemen most kezdtünk el programozni és lenne egy kérdésem. A feladat az, hogy töltsünk fel egy 100elemes stringet 'a' kezdőértékkel, és utána 0.25-el csökkenjen mindig a többi. Aztán meg kell keresni, h hány olyan van ami egész, és nagybetű. Ezek még mennek is.
    De van egy olyan feladat, hogy saját függvényben meg kell számolni a mássalhangzók, és a magánhangzók számát, és ugye úgy, hogy amikor a mainben a return 0-nál vége a programnak ott kiírja őket. Ezt eddig nekem csak úgy sikerült, hogy két külön sajátfüggvényben számoltam meg őket külön.
    A kérdésem az lenne, hogyan lehet megcsinálni, hogy egy saját függvénnyel száoljam meg őket? (mert amikor így próbálom akkor a return után csak az egyket tudom beírni, és akkor a mainbe a mgh-hoz és az msh-hoz is ugyan azt írja.)
    Valaki tudna segíteni? Leírni a sajátfüggvényt, meg h a mainbe mi kell hozzá esetleg? Köszönöm :) :)
  • szpal
    #245
    pl. csinalj egy strukturat, amely az osszes cimletet tartalmazza, nullzd ki, majd ennek a cimet add at a fuggvenyednek 2. parameterkent (1. par. a kerdeses osszeg).
    Ezutan a fuggvenyben pedig allitsd be azoknak az elemeknek az ertekeit, amelyek "erintettek" a kerdeses osszeg kifizeteseben.
    Termeszetesen a modositott struktura elemeihez a fo fuggvenyen belul is hozzaferhetsz.
  • kl24h
    #244
    Én itt azt értem ebből, hogy a program meg kellene adja pl. az általad adott példában azt, hogy 6, 2, 1, de úgy hogy ezeket az értékeket tovább tudd vinni a fő program részben.

    Erre alkalmas lenne a következőképpen gondolkozni. Tehát a program a következőket kellene kiadja:
    f[1] = 6;
    f[2] = 2;
    f[3] = 1; persze ha nagyobb értékről van szó, akkor f[4], f[5], stb.
  • David9317
    #243
    Sziasztok!
    Nekem is lenne egy gondom. Az a feladat, hogy egy adott pénz összegről meg kell határozni h a legkevesebb pénznemmel, h fizethető ki. Pl 1245 6 - 200as, 2 - 20as, és 1 - 5ös. Nem is ezzel van a gond hanem, hogy ezt egy függvényben kellene megoldani. Tehát van egy érték amit átadunk a függvénynek, ez a folyamat lejátszódik benne majd visszaad jó pár értéket. Ezt, hogy lehet megoldani, hogy ezekkel az értékekkel tudjak dolgozni a fő függvényen belül?
    Előre is köszönöm!
  • vanek17
    #242
    Sziasztok!

    Olyan progit szeretnék írni, ami két max 100 elemű stringet ad össze..

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    int main()
    {
    char ch, s1[101], s2[101], muv[1], osszeg[101];
    long i, j, a, b, c;
    FILE *f, *fk;
    f=fopen("osszbe.txt", "r");// a bemenet két szám és egy műveleti jel..adja össze a két számot
    fk=fopen("osszki.txt", "w");
    fscanf(f, "%s", s1);
    a=strlen(s1);
    fscanf(f, "%s", muv);
    fscanf(f, "%s", s2);
    b=strlen(s2);
    //printf("%s %d", s2, b);
    for(i=0; i<=a; i++)
    {
    osszeg[a-i]=s1[a-i]+s2[b-i];
    }
    for(j=0; j<=a-1; j++)
    printf("%c", osszeg[j]);




    fclose(f);
    fclose(fk);
    do{ch=getchar();}
    while(ch!='x');
    return 0;
    }

    valami miatt krikszkrakszokat ad vissza

    előre is köszi
  • Jim Morrison
    #241
    én voltam hülye, nem néztem hogy ez a C topik nem s C#...
    buborék rendezéssel sorba tudod rakni a számokat. Ha tömb elemeit akarod sorb állítani használhatod az Array.Sort -ot (hátha ott is van ilyen)
  • David9317
    #240
    Azt elfelejtette odaírni hogy sima C nyelvben kellene.
    Csökkenőbe rendezés se volt meg még. Próbálgattam if-ekkel de mindig vmi szemantika gondom volt.
  • Jim Morrison
    #239
    Stack

    using System;
    using System.Linq.Expressions;


    namespace valtozot
    {
    class Program
    {
    static void Main(string[] args)
    {
    int a = 5;
    Print(() => a);
    Console.ReadKey();
    }
    static void Print(Expression> expression)
    {
    Console.WriteLine("{0}={1}",
    ((MemberExpression)expression.Body).Member.Name,
    expression.Compile()());
    }
    }
    }



    Ha csak a változó kell, akkor értelemszerűen:

    static void Print<T>(Expression<Func<T>> expression)
    {
    Console.WriteLine("{0}",
    ((MemberExpression)expression.Body).Member.Name);
    }

    Csökkenő sorrendbe rendezés már megvolt?
  • David9317
    #238
    Sziasztok!
    Nem rég kezdtem el programozni és már egy akadályba ütköztem, szval szeretném a segítségeteket kérni.(ez egy nagyon alap feladat szval ne hurrogjatok le:))
    Van 3 változó, amit csökkenő sorrendbe kellene állítani. De nem a változó értékét kellene kíírni hanem a változó nevét. Ezt hogy lehetne megoldani?
    Előre is köszönöm!
  • Jim Morrison
    #237
    órára kell? :) láttam fb-odon matprog jegyzeteket meg ilyeneket :D
  • yeeenky
    #236
    Ha esetleg valakinek lenne egy kis szabadideje és kedve "önkénteskedni" egy kicsit: http://progfeladatok.eu/
  • cmsworld
    #235
    Ilyet esetleg tudna valaki? :/
  • kl24h
    #234
    Privát üzenetben küldök valamit!
  • deni01
    #233
    köszönöm kl24h a gyors segítséget bemásolom a teljes programot én már tényleg halál ideges vagyok tőle nem régen kezdtem egy barátom segítetett ebben és egyszerűen nem találom a hibát,

    ez lenne az alap progi:

    #include <cstdlib>
    #include <iostream>
    #include <vector>

    //#include "verem.h"



    class verem{

    public:
    verem(int meret=10);
    bool isempty();
    bool isfull();
    void push(int a);
    int pop();
    int top();

    enum Hiba{URES,TELE};

    private:
    std::vector<int> v;
    int top_index;
    };


    /*********************************************/


    verem::verem(int meret): v(meret){
    top_index = -1;
    }


    bool verem::isempty(){
    return top_index == -1;
    }



    bool verem::isfull(){
    return top_index == v.size()-1;
    }


    void verem::push(int a){
    if(!isfull()){
    ++top_index;
    v[top_index]=a;
    }
    else
    throw TELE;
    }


    int verem::pop(){
    if(!isempty()){
    --top_index;
    return v[top_index+1];
    } else
    throw URES;
    }


    int verem::top(){
    if(!isempty())
    return v[top_index];
    else
    throw URES;
    }


    using namespace std;
    int main()

    {
    verem a_stack;
    init(&a_stack);

    push(&a_stack, 1);
    cout << "Verem merete: " << count(&a_stack) << '\n';



    cout << "verem értek: " << pop(&a_stack) << '\n';
    cout << "verem ertek: " << pop(&a_stack) << '\n';
    cout << "verem ertek: " << pop(&a_stack) << '\n';
    final(&a_stack);
    system("PAUSE");
    return EXIT_SUCCESS;
    }


    ez a verem.h tartalom:

    #include<vector>


    /* Verem tombos abrazolassal */

    class verem{

    public:
    verem(int meret=10);
    bool isempty();
    bool isfull();
    void push(int a);
    int pop();
    int top();

    enum Hiba{URES,TELE};

    private:
    std::vector<int> v;
    int top_index;
    };


    /*********************************************/


    verem::verem(int meret): v(meret){
    top_index = -1;
    }


    bool verem::isempty(){
    return top_index == -1;
    }



    bool verem::isfull(){
    return top_index == v.size()-1;
    }


    void verem::push(int a){
    if(!isfull()){
    ++top_index;
    v[top_index]=a;
    }
    else
    throw TELE;
    }


    int verem::pop(){
    if(!isempty()){
    --top_index;
    return v[top_index+1];
    } else
    throw URES;
    }


    int verem::top(){
    if(!isempty())
    return v[top_index];
    else
    throw URES;
    }


    ez pedig a vektor.h tartalma:

    #ifndef SS_Vector_H
    #define SS_Vector_H

    #include "common.h"

    class Vector : public Point {
    public:
    // Constructors same as Point class
    Vector() : Point() {};
    Vector( int a) : Point(a) {};
    Vector( double a) : Point(a) {};
    Vector( int a, int b) : Point(a,b) {};
    Vector( double a, double b) : Point(a,b) {};
    Vector( int a, int b, int c) : Point(a,b,c) {};
    Vector( double a, double b, double c) : Point(a,b,c) {};
    Vector( int n, int a[]) : Point(n,a) {};
    Vector( int n, double a[]) : Point(n,a) {};
    ~Vector() {};

    //----------------------------------------------------------
    // IO streams and Comparisons: inherit from Point class

    //----------------------------------------------------------
    // Vector Unary Operations
    Vector operator-(); // unary minus
    Vector operator~(); // unary 2D perp operator

    //----------------------------------------------------------
    // Scalar Multiplication
    friend Vector operator*( int, Vector);
    friend Vector operator*( double, Vector);
    friend Vector operator*( Vector, int);
    friend Vector operator*( Vector, double);
    // Scalar Division
    friend Vector operator/( Vector, int);
    friend Vector operator/( Vector, double);

    //----------------------------------------------------------
    // Vector Arithmetic Operations
    Vector operator+( Vector); // vector add
    Vector operator-( Vector); // vector subtract
    double operator*( Vector); // inner dot product
    double operator|( Vector); // 2D exterior perp product
    Vector operator^( Vector); // 3D exterior cross product

    Vector& operator*=( double); // vector scalar mult
    Vector& operator/=( double); // vector scalar div
    Vector& operator+=( Vector); // vector increment
    Vector& operator-=( Vector); // vector decrement
    Vector& operator^=( Vector); // 3D exterior cross product

    //----------------------------------------------------------
    // Vector Properties
    double len() { // vector length
    return sqrt(x*x + y*y + z*z);
    }
    double len2() { // vector length squared (faster)
    return (x*x + y*y + z*z);
    }

    //----------------------------------------------------------
    // Special Operations
    void normalize(); // convert vector to unit length
    friend Vector sum( int, int[], Vector[]); // vector sum
    friend Vector sum( int, double[], Vector[]); // vector sum
    };
    #endif SS_Vector_H

    fordításnál semmilyen hibát nem jelez csak a hibakód azaz 1db és áááá megőrülök tőle...
    ha valakinek sikerül valahogy megoldania az kérem írjon hogy mit merre hogyan :) előre is köszönöm
  • cmsworld
    #232
    Szeretném megkérdezni, hogy tudna e valaki C programozási feladatgyűjteményt ajánlani? Esetleg amit maga is használt? A Juhász István, Kósa Márk, Pánovics János féle "C példatár" című könyvet ismerem.
    Ehhez hasonló feladatokat keresnék: http://pastebin.com/9NtteJgu
    A válaszokat előre is köszönöm!
  • kl24h
    #231
    A DevC++ bejelöli, hogy hol találja a hibát. Nézd át, hogy nincs-e hiba a verem.h és a vector.h fájlokban. Valami kis elírás lehet. Mivel csak a hiba kódot tetted ide, sokat nem lehet látni, de esetleg az "o, c, S" helyett ahol használtad szerintem kellene írd, hogy %o, %c, %s.
  • deni01
    #230
    sziasztok!tud valaki segíteni nekem? van 1 progim ami devC++ ban lett megírva és a fordítás után 1db hiba van és sehogy se jövök rá hogy mit kellene csinálni hogy jó legyen

    hiba kód:
    Compiler: Default compiler
    Building Makefile: "C:\Documents and Settings\deni\Asztal\progi(2)\progi\Makefile.win"
    Executing make...
    make.exe -f "C:\Documents and Settings\deni\Asztal\progi(2)\progi\Makefile.win" all
    g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include" . vector.h verem.h

    g++.exe: cannot specify -o with -c or -S and multiple compilations

    make.exe: *** [main.o] Error 1

    Execution terminated

    ha valaki tud segíteni vagy több infó kellene a megoldáshoz az kérem írjon,nagyon fontos lenne!
    előre is köszönöm. :)
  • cmsworld
    #229
    Az 0, mert akkor akarom megállítani a ciklust, ha az input 1. karaktere *.
  • Khabbas
    #228
    A 16. sorban a
    while(input[0] != '*') valszeg
    while(input[ i ] != '*') akarna lenni első ránézésre.
  • cmsworld
    #227

    Ebben a kódban mi lehet a hiba: http://pastebin.com/tDfwXPtg ?


    Előre is köszönöm!
  • cmsworld
    #226
    Köszönöm!

  • artiny
    #225
    TXT knél mikor melyiket használjuk/ printf, fprintf, scanf, fscanf putchar, getchar, fputc, fgetc fpots, fgets /?

    printf, - ha ki akarok íratni valamit txtbol pl. egy getc bol

    fprintf, - ha egy beolvasott karaktert kiíratok,elmentek egy txt be

    scanf, - érteket adok egy változónak

    fscanf,

    putchar, - egy darab karaktert megjelenít a képernyőn,

    getchar, - egy darab karaktert beolvas egy txtbol,

    putc,

    getc,

    fputc,

    fgetc,

    fputs,

    Amihez nem irtam azzal nem vagyok tisztába teljesen vagy mar teljesen összekavart.

    www.cplusplus.com/
    cpprefence oldalakon mar átnéztem többször is de....nem értem teljesen stb ...
    feladatokhoz kell ez az összegzés nekem hogy tudjam mikor melyiket kell használni altban.
  • Khabbas
    #224
    Gratula :)
  • NetHuszár
    #223
    Megoldottam :)
  • NetHuszár
    #222
    Sziasztok ! Érettségi feladatot akarok megcsinálni, szintén C# nyelven, de mivel ezzel a nyelvvel csak most ismerkedem kéne egy kis segítség :) (ha lehet gyorsan mert megőrülök:))
    2005 május 20-i feladatsorból itt a feladat:

    Egy légszennyezettség-mérő állomás óránként meghatározza a detektorába érkező porszemek számát. (Ez egy 0 és 65535 közé eső érték lehet.) A mérés eredményét feljegyzi egy éven keresztül a por(1..365, 0..23) tömbbe. A por() tömb (i,k)-adik eleme az év i-edik napján k és k+1 óra között mért pormennyiséget jelöli.
    Készítsen programot, mely (műszer hiányában) véletlenszerű értékekkel tölti fel a por() tömböt! A feltöltött tömbben tárolt adatok alapján határozza meg, és írja képernyőre az év „legporosabb” napjainak sorszámait, és az adott napon észlelt összes por mennyiségét! Legporosabb napokon az olyan napokat értjük, amelyeken a mért összes pormennyiség a teljes mérési időszakban észlelt napi összes pormennyiségek maximumától legfeljebb 1%-kal tér el.

    Egyszerű, de nem tudom megcsinálni... Remélem tud valaki segíteni !:)
  • Jim Morrison
    #221
    Basszus, azt hittem már iirtam délután na mindegy.
    Egy sima progit akarok csinálni amivel változtathatom az alap audio eszközt. Kis keresgélés után rátaláltam erre. Igazából pont ilyenre gondoltam, csak nem tudom hogyan csináljam meg dll el még nem is foglalkoztam.
    Valaki segiitene? :)
  • Dj Faustus #220
    Ha ilyesmi kimenetre gondolsz:
    0. oszlop: 10
    1. oszlop: 10
    2. oszlop: 1
    3. oszlop: 5
    4. oszlop: 5
    5. oszlop: 1
    6. oszlop: 10
    7. oszlop: 10
    xx....xx
    xx....xx
    xx....xx
    xx....xx
    xx....xx
    xx.xx.xx
    xx.xx.xx
    xx.xx.xx
    xx.xx.xx
    xxxxxxxx


    Akkor ilyesmi kell:
    #include <stdio.h>
    #define N 8 //Oszlopok száma
    #define M 10 //Sorok száma

    int main(){
    int i, j, max, sza[M];
    char tabla[M][N];

    //Inicializalas
    for (i=0; i<M; i++)
    for(j=0 ;j<N; j++)
    tabla[i][j] = '.';

    printf("Kerem a part adatait:\n");

    //Magasságok bekérése
    for (j=0; j<N; j++) {
    printf ("%d. oszlop: ",j);
    scanf("%d", &sza[j]);
    //Túlcsordulás megakadályozása
    while ((sza[j]<0) || (sza[j]>M)) {
    printf ("%d. oszlop: ",j);
    scanf("%d", &sza[j]);
    }
    }

    //Berajzolás
    for (j=0; j<N; j++)
    for(i=(M-sza[j]); i<M; i++)
    tabla[i][j]='x';

    //Kiiras
    for (i=0; i<M; i++) {
    for (j=0; j<N; j++) {
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }

    return 0;
    }


    Sőt egy kicsit optimalizálva:
    #include <stdio.h>
    #define N 8 //Oszlopok száma
    #define M 10 //Sorok száma

    int main(){
    int i, j, max, sza[M];
    char tabla[M][N];

    printf("Kerem a part adatait:\n");

    //Magasságok bekérése
    for (j=0; j<N; j++) {
    printf ("%d. oszlop: ",j);
    scanf("%d", &sza[j]);
    //Túlcsordulás megakadályozása
    while ((sza[j]<0) || (sza[j]>M)) {
    printf ("%d. oszlop: ",j);
    scanf("%d", &sza[j]);
    }
    }

    //Kirajzolás
    for (i=0; i<M; i++) {
    for (j=0; j<N; j++) {
    if ((i>=(M-sza[j])) && (i<M)) {
    tabla[i][j]='x';
    } else {
    tabla[i][j]='.';
    }
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }

    return 0;
    }
  • cmsworld
    #219
    Köszönöm előző válaszaid és segítségeid Dj Faustus! Segítségedet szeretném kérni az alábbi példában. Hogyan lehetne azt megoldani, hogy balról indulva egy bizonyos magasságig y-okat rajzoljon be?


    #include <stdio.h>
    #define n 8
    #define m 10

    int main(){
    int i, j, max, sza[8], viz=0;
    char tabla[m][n];

    //Inicializalas//
    for(i=0;i<m;i++)
    for(j=0;j<n;j++)
    tabla[i][j] = '.';

    printf("Kerem a part adatait:");

    //Magasságok bekérése//
    for(i=0;i<8;i++)
    scanf("%d", &sza[i]);

    //Berajzolás//
    for(j=0;j<8;j++)
    for(i=m-1;i>sza[j];i--)
    tabla[i][j]='x';




    //Kiiras//
    for(i=0; i<m; i++){
    for(j=0; j<n; j++){
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }


    return 0;
    }
  • Dj Faustus #218
    Fel volt cserélve a kiírásoknál a sorok és az oszlopok száma.

    Helyesen így néz ki:
    #include <stdio.h>
    #define M 9
    #define N 4

    int main(){
    char tabla[M][N];
    int i, j, poz=0;

    //Inicializalas
    for(i=0; i<M; i++)
    for(j=0; j<N; j++)
    tabla[i][j]='.';

    //Kezdo allas kiiratasa
    printf("A tabla kezdeti allasa:\n");
    for(i=0; i<M; i++){
    for(j=0; j<N; j++){
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }

    //Poziciok bekerese
    printf("Pozicio: ");
    scanf("%d", &poz);
    tabla[3][poz]='x';

    //Megvaltozott allas kiiratasa
    printf("\nA tabla allasa:\n");
    for(i=0; i<M; i++){
    for(j=0; j<N; j++){
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }
    return 0;
    }
  • yeeenky
    #217
    Ez a kódrészlet miért két helyre ír csillagot a mátrixba?

    #include <stdio.h>
    #define M 9
    #define N 4

    int main(){
    char tabla[M][N];
    int i, j, poz=0;

    //Inicializalas//
    for(i=0;i<M;i++)
    for(j=0;j<N;j++)
    tabla[i][j]='.';

    //Kezdo allas kiiratasa//
    printf("A tabla kezdeti allasa:\n");

    for(i=0; i<N; i++){
    for(j=0; j<M; j++){
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }

    //Poziciok bekerese//

    printf("Pozicio:");
    scanf("%d", &poz);

    tabla[3][poz]='x';

    printf("\nA tabla allasa:\n");

    for(i=0; i<N; i++){
    for(j=0; j<M; j++){
    printf("%c", tabla[i][j]);
    }
    printf("\n");
    }




    return 0;
    }
  • wilderten
    #216
    Üdv!
    Az én gondom az lenne, hogy kaptam egy beadandót, de nem tudom megcsinálni. Eddig vagy 3 programot írtam életemben, azok ennél sokkal könnyebbek voltak. Ezért szeretnék segítséget kérni ebben, vagy csak egy "kezdő löketet".

    A feladat a következő:

    Írjon C programot, mely kiszámítja a függvény értékeit egy adott intervallumban egymástól egyenlő távolságokra levő x változókra! A program kérje be az intervallum kezdő és végpontját, valamint az osztásközök számát, és írja ki az osztópontokban (beleértve a kezdő és végpontot is) kiszámított függvényértékeket táblázatos formában. Azokban a pontokban, ahol f(x) nincs értelmezve, a program küldjön hibaüzenetet!

    Egyébként egy borlanc nevű programot használunk, abban írtuk eddig azt a pár programot.
    Ha valaki tudna segíteni, azt nagyon megköszönném!
  • sgt anderson
    #215
    Üdv mindenkinek!
    Egy olyan problémám lenne, hogy PHP-hoz szeretnék id3 tag-eket használni, amihez kellene egy bővítmény, aminek csak a forrásfájljait tudom beszerezni, és nekem kéne előállítani egy .dll-t belőle valahogy, ezért bátorkodom ide írni.
    A gond az, hogy a C-hez nekem nagyjából semmi közöm nincs, és nem tudom mit kéne vele csinálnom. Hozzáadtam a fájlokat a készítendő dll-hez, de a Build-nél mindig hiányolt fájlokat magának a PHP-nek a forrásából, így azokat hozzá adogattam szép sorban, de egy fájlt (zend_config.h) már nem tudok honnan előszedni. Egyenlőre eddig jutottam ezzel.

    (Ez lenne az original problémám. )

    Ha valaki tud, segítsen, köszi előre is.
    Ja és mielőtt elfelejtem, most épp Visual C++ 2008 Express-szel dolgoznék, de másik gépen próbáltam régi 6.0-s C++ -szal is, azzal sem volt jobb a helyzet.
  • yeeenky
    #214
    Köszönöm!
  • Dj Faustus #213
    "Tetszőleges méretű tömböt"
    Tetszőleges méretű tömbbön dinamikus tömböt értesz? Mert ahhoz biz' kellenek a pointerek.

    Csináltam egy példakódot mind a két esetre (dinamikus és nem dinamikus tömb esetére):
    #include <stdio.h>
    #include <stdlib.h>

    #define LOW 0
    #define HIGH 100
    int *din_tomb; //A dinamikus, egészeket tároló tömb
    int nem_din_tomb[10]; //A nem dinamikus, egészeket tároló tömb

    //-----------------------------------------------------------------------------------------
    // Egy véletlenszerűen választott elem a dinamikus tömbből
    //-----------------------------------------------------------------------------------------
    int din_tomb_eleme (int *din_tomb_be, int elemszam_be) {
    return din_tomb_be[(rand() % (elemszam_be - 1))];
    }
    //-----------------------------------------------------------------------------------------
    // Egy véletlenszerűen választott elem a nem dinamikus tömbből
    //-----------------------------------------------------------------------------------------
    int nem_din_tomb_eleme (int nem_din_tomb_be[10], int elemszam_be) {
    return nem_din_tomb_be[(rand() % (elemszam_be - 1))];
    }

    void main() {
    //-----------------------------------------------------------------------------------------
    // A fő függvény változóinak deklarálása, véletlenszámgenerátor inicializálása
    //-----------------------------------------------------------------------------------------
    int i;
    int elemszam = rand() % (9) + 10; //A dinamikus tömbnek minimum 10, maximum 20 eleme lehet
    srand( time(NULL) );

    //-----------------------------------------------------------------------------------------
    // Dinamikus tömb inicializálása
    //-----------------------------------------------------------------------------------------
    din_tomb = (int *) calloc (elemszam, sizeof(int));
    if (!din_tomb) {
    printf ("Nem sikerült a tömb inicializálása!\n");
    }

    //-----------------------------------------------------------------------------------------
    // Dinamikus tömb feltötlése
    //-----------------------------------------------------------------------------------------
    printf("Dinamikus tömb:\n");
    printf("---------------\n");
    for (i = 0; i < elemszam; i++) {
    din_tomb[i] = rand() % (HIGH - LOW + 1) + LOW;
    printf ("%d %d\n",i,din_tomb[i]);
    }
    printf ("Véletlen elem a dinamikus tömbből: %d\n\n",din_tomb_eleme (din_tomb, elemszam));

    //-----------------------------------------------------------------------------------------
    // Nem dinamikus tömb feltötlése
    //-----------------------------------------------------------------------------------------
    printf("Nem dinamikus tömb:\n");
    printf("-------------------\n");
    for (i = 0; i < 10; i++) {
    nem_din_tomb[i] = rand() % (HIGH - LOW + 1) + LOW;
    printf ("%d %d\n",i,nem_din_tomb[i]);
    }
    printf ("Véletlen elem a nem dinamikus tömbből: %d\n",nem_din_tomb_eleme (nem_din_tomb, 10));

    free (din_tomb); //Dinamikus tömb felszabadítása
    }