» »

[C] Kje je tle fora :)

[C] Kje je tle fora :)

tadej123321 ::

Živjo :)

Pišem en simpl programček, kjer v tabelo shranjujem imena procesov in njihovo prioriteto. Ko pa želim zadevo izpisati, se pa začnejo težave. Če vnesem in izpišem en proces še gre, karkoli več pa vrže vn popolnoma napačne vrednosti...
Skratka, če bi si lahko nekdo malo pregledal kodo in povedal kakšen nasvet bi bilo fino...

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

#define MAX 30

typedef struct{
        char ime[20];
        int prioriteta;
        float cas_izvajanja;
        int kdaj;
     } proces;

void izpis(proces *procesi, int *st){
     system("CLS");
     printf("Izpis vseh procesov, neurejeno:\n");
     int i;
     int j=*st;
     for (i=0;i<j;i++){
         printf("\nIme procesa: %s",procesi[i].ime);
         printf("\n\tPrioriteta: %d",procesi[i].prioriteta);
         printf("\n\tCas izvajanja: %f",procesi[i].cas_izvajanja);
         }
     system("PAUSE");
     }

void vnos(proces *procesi, int *st){
     system("CLS");
     int i=*st;
     int prio;
     float cs;
     char im[20];
     
     printf("Stevilo procesov, ki jih se lahko vnesete: %d\n\n",MAX-i);
     fflush;
     printf("Ime procesa: ");
     scanf("%s",im);
     strcpy(procesi[i].ime,im);
     printf("\n\nPrioriteta: ");
     scanf("%d",&prio);
     printf("Cas izvajanja [podate v ms, locite z znakom .]:");
     scanf("%f",&cs);
    
     procesi[i].prioriteta=prio;
     procesi[i].cas_izvajanja=cs;
     procesi[i].kdaj=0;
     system("PAUSE");
     *st=*st+1;
     }

void meni(){
     proces *procesi;
     procesi=(proces*)malloc(1*sizeof(proces));
     int st=0;
     int izbira;
     unsigned short int i=1;
     while(i!=0){
                 system("CLS");
                 printf("\nPozor! Maksimalno stevilo procesov je %d\n\n\n",MAX);
                 printf("\tIzberite:\n");
                 printf("\t1: Vnos procesa\n");
                 printf("\t2: Izpis procesov\n");
                 printf("\t3: Izhod");
                 printf("\n\n\tIzbira:");scanf("%d",&izbira);
                 if (izbira==1) vnos(procesi,&st);
                 else if (izbira==2)izpis(procesi,&st);
                 else break;
                 }
     printf("Program se zapira...");system("PAUSE");
     }

int main(){
    meni();
    return 0;
    }
  • spremenil: Mavrik ()

Senitel ::

Vrstica 54... Rezerviraš prostor samo za en "proces".


Vredno ogleda ...

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

Niti - segmentation fault

Oddelek: Programiranje
211973 (820) galu
»

[C] Sinhronizacija procesov

Oddelek: Programiranje
71140 (1013) Cvenemir
»

[C] Procesi

Oddelek: Programiranje
6970 (879) Cvenemir
»

[C] in delo s procesi v Linuxu

Oddelek: Programiranje
132280 (1766) OmegaM
»

[NALOGA][C] - Sortiranje učencev

Oddelek: Programiranje
71322 (1175) m4r3

Več podobnih tem