Прорешала все экзамеционные билеты,а у этих 2х программ компилятор мне ошибку выдает!Помогите мне,пожалуйста!!!
1)Написать программу на Си,которая запрашивает с терминала имя текстового файла и произвольное слово и ищет это слово в файле.
2)Написать программу на языке Си,которая создает два списка из целых чисел(числа вводятся с терминала).сливает их в один список и выводит результат на экран.Ввод,вывод и слияние оформить отдельными функциями.
Помогите,пожалуйста, написать программу на си(экзамен)!!!
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Давай сюда код, на котором компилятор ошибку даёт. Будем разбираться.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
С 1 программой я разобралась сама,а вот 2 ошибку опять выдает!
Вот код 2 программы,что за ошибка?
Вот код 2 программы,что за ошибка?
Код: Выделить всё
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
struct ptr1{
int data;
struct ptr1 *next;
};
typedef struct ptr1 spis1;
typedef spis1 *spis;
void dobav(spis *);
void printl(spis);
void menu();
void add(spis *,spis *);
main(void)
{
int re;
spis a=NULL;
spis b=NULL;
menu();re=0;
scanf("%d",&re);
while ((re!=5))
{
switch (re)
{
case 1:dobav(&a);break;
case 2:dobav(&b);break;
case 3:add(&a,&b);break;
case 4 :p rintl(a);break;
}
menu();
scanf("%d",&re);
}
return(0);
}
void dobav(spis *c)
{
spis nov,cur,pr=NULL;
int key;
nov=(spis )malloc(sizeof(spis1));
cur=*c;
printf("enter num ");
scanf("%d",&key);
if (nov!=NULL)
{
nov->data=key;
while (cur!=NULL)
{
pr=cur;
cur=cur->next;
}
nov->next=cur;
if (pr==NULL) *c=nov;
else pr->next=nov;
}
printl(*c);
}
void printl(spis s)
{
spis cur;
printf("*** begin ***\n");
cur=s;
while (cur!=NULL)
{
printf("%d\n",cur->data);
cur=cur->next;
}
printf("*** end ***\n");
getchar();getchar();
}
void add(spis *a1,spis *b1)
{
spis cur;
cur=*a1;
while (cur->next!=NULL)
cur=cur->next;
cur->next=*b1;
printf("marged");
getchar();getchar();
}
void menu()
{
clrscr();
printf("1-add first\n2-add second\n3-marge\n");
printf("4-see \n5-exit\n");
}
Вообще-то, компилятор не просто "выдаёт ошибку", а приводит сообщение в чём эта ошибка состоит и номер строки, в которой он её обнаружил.... Нельзя ли в студию предъявить это и это, а также тыцнуть пальцем в которой именно строчке программы это произошло? А то у меня с устным счётом проблемы - я больше десяти строк отсчитать не могу...
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Угу, у меня та же проблемаVasilisk писал(а): А то у меня с устным счётом проблемы - я больше десяти строк отсчитать не могу...

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.