Программа компилируется без ошибок, но не запускается - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Программа компилируется без ошибок, но не запускается. В чем проблема? Помогите, пожалуйста
#include <stdio.h>
#include <malloc.h>
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct node 
{     char  word;        
int  count;       
struct node  *next;              
}; 

void add(struct node *b, struct node *start)
{
struct node *tem, *cur;
tem=(struct node* )malloc(sizeof(struct node ));
if(tem==NULL)
{printf("NO!\n");
}
tem->word=b->word;
tem->count=b->count;
tem->next=NULL;
 
if(start==NULL)
{start=tem;
}
else
{cur=start;
while(cur->next!=NULL)
{
cur=cur->next;
}cur->next=tem;
 
}
}
 
struct node* vvod(struct node *start)
{
struct node *b;
FILE *fp;
fp=fopen("in.txt", "r");
//fscanf(fp,"%s %d", b->word, &(b->count));
if(fp==NULL)
{printf("NO!\n");
}
while(b->word!=EOF && b->count!=EOF)
{ fscanf(fp,"%s %d", b->word, &(b->count));
add(b, start);
printf("%d %s",b->word, b->count);
}
return b;
}
 
int main()
{struct node *start;
struct node *b;
start=NULL;
b=vvod(start);
//print(start, b);
}
 
void print(struct node *start, struct node *b)
{ 
if(start==NULL)
{printf("NOO!\n");
}
b=start;
printf("\n");
while(b!=NULL)
{printf("%s %d",b->word, &b->count);
b=b->next;
}
}

Решение задачи: «Программа компилируется без ошибок, но не запускается»

textual
Листинг программы
struct node *b;
FILE *fp;
fp=fopen("in.txt", "r");
//fscanf(fp,"%s %d", b->word, &(b->count));
if(fp==NULL)
{printf("NO!\n");
}
while(b->word!=EOF && b->count!=EOF)

Объяснение кода листинга программы

  1. Объявляются две переменные: b типа struct node* и fp типа FILE*.
  2. Переменная fp инициализируется вызовом функции fopen(in.txt,r).
  3. Переменная b указывает на первый элемент в списке.
  4. Выполняется проверка на успешное открытие файла. Если файл не может быть открыт, выводится сообщение об ошибке.
  5. В условии цикла while используется оператор !=, поэтому предполагается, что он будет выполняться до тех пор, пока b->word не станет равным EOF или b->count не станет равным EOF.
  6. Внутри цикла предполагается, что сначала выполняется чтение из файла с помощью fscanf(fp,%s %d, b->word, &(b->count)), а затем выполняется какая-то другая операция с переменными b->word и b->count. Однако, в данном коде эта операция не указана.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы