1 Востаннє редагувалося DoneeX (24.11.2014 23:19:28)

Тема: Проблема з запуском

Всім привіт
Чомусь не запускається написана програма. Тільки ось таке:

Прихований текст

http://s7.сайт-злодій/uploads/images/2014/11/87ab1963655084cb213ad673d5fd8f34.jpg

Ось лістинг:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define max 100
typedef struct
{
    char vb[100];
    char mod[100];
    char col[100];
    char har[100];
    float cina;
}phones;
typedef struct plt
{
    phones elt;
    struct plt *next;
}ltp;
ltp *to_list(ltp *pred)
{
     FILE *f;
     phones t; 
     f=fopen("Baza.bd","rb");     
     ltp *vsp;
     while (!feof(f))
     {
         fread(&t,sizeof(phones),1,f);
         vsp=(ltp*)malloc(sizeof(ltp));
         vsp->elt=t;
         vsp->next=0;        
         pred->next=vsp;
         pred=pred->next;
     }
     fclose(f);
     return 0;
}
void *searsh(ltp *first)
{





    int i,nom;
    phones t;
    ltp *vv;
    system("cls");
    vv=first->next;
    system("cls");
    printf("\nVvedit nomer zapysu: ");
    scanf("%d",&nom);
    for (i=0;i<nom-1;i++)
        vv=vv->next;
    t=vv->elt;
    printf("\n%s %s/%s/  %4.2f",t.vb,t.mod,t.col,t.cina);
    getch();
    return 0;    
}

void print(ltp *first)
{
    system("cls");
    phones t;
    ltp *vv;
    vv=first->next;
    while (vv)
    {        
        t=vv->elt;
        printf("\n%s %s/%s/  %4.2f",t.vb,t.mod,t.col,t.cina);
        vv=vv->next;     
     }
     getch();
}
void del_list(ltp *first)
{
    ltp *vv;
    FILE *f;
    phones t;
    f=fopen("Baza.bd","wb");
    vv=first->next;
    while (vv)
    {
          t=vv->elt;
          fwrite(&t,sizeof(t),1,f);
          vv=vv->next;
    }
    fclose(f);
    while(first) 
    {
        vv=first->next;
        free(first);
        first=vv;
    }
}
void redag(ltp *first)
{
    system("cls");
    phones t;
    int i,nom;
    ltp *vv;    
    printf("\nVvedit nomer zapysu:");
    scanf("%d",&nom);
    for (i=0;i<nom-1;i++)
        vv=vv->next;
    printf("\nVvedennya novoiinformacii:\n");
    printf("Vyrobnyk: ");
    scanf("%s",t.vb);
    printf("model: ");
    scanf("%s",t.mod);
    printf("Kolir: ");
    scanf("%s",t.col);
    printf("harakterystyky: ");
    scanf("%s",t.har);
    printf("Cina: ");
    scanf("%f",&t.cina);
    vv->elt=t;
}
void dodav(ltp *first)
{
    system("cls");
    phones t;
    ltp *vv,*vsp;
    int i,new;
    vv=first;    
    printf("\nVvedit kilkist novyh zapusiv:");
    scanf("%d",&new);
    while (new<1)
    {
          printf("\nNevirna kilkist zapysiv...");
          printf("\nVvedit kilkist novyh zapysiv: ");
          scanf("%d",&new);
    }
    for (i=0;i<new;i++)
    {
        while (vv->next)
        vv=vv->next;
        printf("Vyrobnyk: ");
        scanf("%s",t.vb);
        printf("model: ");
        scanf("%s",t.mod);
        printf("Kolir: ");
        scanf("%s",t.col);
        printf("harakterystyky: ");
        scanf("%s",t.har);
        printf("Cina: ");
        scanf("%f",&t.cina);        
        vsp=(ltp*)malloc(sizeof(ltp));
        vsp->elt=t;
        vsp->next=0;        
        vv->next=vsp;
    }
    getch();        
}
void sort(ltp *first)
{
     int pp=1;
     ltp *vv;
     phones t;
     while (pp==1)
     {
           pp=0;
           vv=first;
           while (vv->next)
           {
               if (vv->elt.cina>vv->next->elt.cina)
               {
                   pp=1;
                   t=vv->elt;
                   vv->elt=vv->next->elt;
                   vv->next->elt=t;
               }
               vv=vv->next;
           }
     }
 }
void delet(ltp *first)
{
    system("cls");
  
    ltp *vv;
    vv=first;
    int nom,i=0;
    printf("\nVvedit nomer zapysu:");
    scanf("%d",&nom);
    for (i=0;i<nom-1;i++)
        vv=vv->next;
    vv->next=vv->next->next;  
    getch();
}
int main()
{
    ltp *first,*pred;
    int pp;
    pred=(ltp*)malloc(sizeof(ltp));     
    first=(ltp*)malloc(sizeof(ltp));
    first=pred;
    to_list(pred);
    pred=first->next;
    while (pp!=6)
    {
          system("cls");
          printf("\nRobota z bazoyu dannyh....");
          printf("\nVyberit potribnu diyu:\n");
          printf("\n1.....poshuk zapysu.");
          printf("\n2.....redaguvannya zapysu.");
          printf("\n3.....dodavannya zapysiv.");
          printf("\n4.....vyvedennya vsiei bazy dannyh.");
          printf("\n5.....vydalennya zapysu.");
                   printf("\n___________________________________________");
          printf("\n6.....Vyhid z programmy....\n");
          scanf("%d",&pp);
          if (pp==1) searsh(first);
          if (pp==2) redag(first);
          if (pp==3) dodav(first);
          if (pp==4) print(first); 
          if (pp==5) delet(first);  
           }
 sort(first);
    del_list(first);
    return 0;
}

На інших комп'ютерах чомусь все працює як потрібно.
Працюю в Geany.
Допоможіть будь ласка вирішити цю проблему.. Залишилося здати всього 1 лабу і 1 практику а тут таке ... :(

2

Re: Проблема з запуском

В чому проблема? Що компілятор каже? Чим Вас не влаштовує?

3

Re: Проблема з запуском

Як я вже сказав чомусь саме у мене не працює. Скрін вікна після азпуску вище.
Скрін що має бути(з комп'ютера мого друга):

Прихований текст

http://s7.сайт-злодій/uploads/images/2014/11/7b75765f3ba196baa3f1d4113e020cbe.jpg

Компілятор помилок і попереджень не знаходить.

4

Re: Проблема з запуском

чим ці два комп'ютери відрізняються?

5 Востаннє редагувалося DoneeX (25.11.2014 11:08:46)

Re: Проблема з запуском

Окрім характеристик та розрядності віндовса нічим. Може бути проблема з розрядністю? Але програми по-простіше у мене запускаються без проблем. А коли робота з файлами - біда...

6

Re: Проблема з запуском

а віндовз такий самий? чи має програма права на роботу з файлами?

7 Востаннє редагувалося DoneeX (25.11.2014 11:22:23)

Re: Проблема з запуском

У мене 8.1 х64, у друга 8.1 х32.
Як перевірити чи має права на роботу з файлами?

8 Востаннє редагувалося Chemist-i (25.11.2014 11:45:18)

Re: Проблема з запуском

Дуже просто, як щось читаєте - перевіряйте чи прочиталось.
Наприклад:

f=fopen("Baza.bd","rb");
...
if (f != NULL) {
  ...//Прочиталось
} else {
  printf("not opened/readed"); //не прочиталось
  ... 
}