Форум программистов, компьютерный форум CyberForum.ru

Не могу дописать программу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу для подсчета произведения элементов целочисленной прямоугольной таблицы Y http://www.cyberforum.ru/cpp-beginners/thread118681.html
Составить программу для подсчета произведения элементов целочисленной прямоугольной таблицы Y, состоящий из M строк и N столбцов, сумма двух индексов которых число четное. Сформировать матрицу с помощью генератора случайных чисел и организовать ее вывод на экран.
C++ Строки #include <stdio.h> #include <conio.h> #include <string.h> #define size 255 int main(){ char buf = "ddddddddd\n aaaaaaa\n nrrrrr\n kkkk \n "; unsigned int lenght = strlen(buf); unsigned int i ; printf("%s",buf); printf("\n"); http://www.cyberforum.ru/cpp-beginners/thread118680.html
Как сделать .exe C++
У меня такой вопрос. У меня есть программа каторая состоит из 3 файлов как я могу сделать эту програму чтобы она открывалась сама с расширением .exe? помогите пожалуйста кто может. Главный файл – “kyrs.cpp” #include<stdio.h> #include<conio.h> #include<graphics.h> #include<stdlib.h> #include<string.h> #include<iostream.h>
C++ выдаёт ошибку в составленной программе выдаёт ошибку
Составить программу, которая находит максимальное значение среди элементов линейной таблицы Y, состоящий из N действительных чисел, имеющих нечетные индексы. #include <vcl.h> #include <iostream.h> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv)
C++ тема шаблоны (необходимо устранить ошибки) http://www.cyberforum.ru/cpp-beginners/thread118635.html
задача такая:дана прямоугольная матрица. определить кол-во столбцов не содержащих ни одного нулевого элемента. характеристикой строки матрицы назовем сумму ее положительных четных элементов. переставляя строки заданной матрицы расположить их в соответствии с ростом характеристик. (нада чтобы был 3 вывода для 3х типов данных: int,double,real) заранее большое спасибо!!! Выложите код на...
C++ угол треугольника Надо ввести три целых числа a,b,c, стороны треугольника. Является ли данный треугольник прямоугольным? вот что я пытался сделать но что то не то... int a,b,c,result; printf("vvedite storoni"); scanf("%d%d%d",&a,&b,&c); result=a^2+b^2-c^2; if (result==0) printf("\n ravnij %d\n "); else printf("\n ne ravnij %d\n "); scanf("%d"); подробнее

Показать сообщение отдельно
IROKEZ
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 19
18.04.2010, 20:03     Не могу дописать программу
Проблема следующая, сделал все из того, что ниже, кроме вставки стула и двусвязного стека. К сожалению сколько я не бился над решением этих задач, ничего толкового так и не вышло. Все еще осложняется тем, что со списками я последний раз работал год назад на паскале, тогда я их знал отлично и подобная задача для меня проблемой не была, но сейчас я все напрочь забыл, хотя, на паскале бы мб вспомнил чего, а вот с Си проблема, да еще сроки поджимают, завтра уже сдать надо все Очень рассчитываю на вашу помощь, заранее спасибо!

Написать программу, которая вводит из файла структуры, размещает их в стеке, реализованном с помощью двунаправленного
циклического списка, и вставляет в список новый стул перед самым низким стулом. Результат (содержимое стека)
выводится в файл
Код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define Lmax 20
#define CHAIR struct chr
#define CLR while(fgetc(f)!='\n')

CHAIR
{
	char color[Lmax];
	int height;
	struct
	{
		char city[Lmax], factory[Lmax], sname[Lmax];
	}
	manufactur;
	char mater[Lmax];
	CHAIR *prev; // Указатель на предыдущую запись
	CHAIR *next; // Указатель на следующую запись
};

// Формирование стека стульев. На входе имя входного файла
CHAIR* stack(char name[])
{
	CHAIR *tek, *stack=NULL; // tek - указатель на текущую запись
	FILE *f;

	f=fopen(name,"r");
	if(f==NULL)
	{
		puts("File not found");
		exit(1);
	}
	else
	{
		while(!feof(f))
		{
			//Выделение памяти для новой записи
			tek=(CHAIR*)malloc(sizeof(CHAIR));
			if(fgets(tek->color,Lmax,f))
			{
				tek->color[strlen(tek->color)-1]='\0'; // Замена \n на \0
				fscanf(f,"%d",&tek->height);
				CLR;
				fgets(tek->manufactur.city,Lmax,f);
				tek->manufactur.city[strlen(tek->manufactur.city)-1]='\0';

				fgets(tek->manufactur.factory,Lmax,f);
				tek->manufactur.factory[strlen(tek->manufactur.factory)-1]='\0';

				fgets(tek->manufactur.sname,Lmax,f);
				tek->manufactur.sname[strlen(tek->manufactur.sname)-1]='\0';

				fgets(tek->mater,Lmax,f);
				tek->mater[strlen(tek->mater)-1]='\0';

				tek->next=stack;
				//tek->prev=stack;
				stack=tek;
			}
		}
		free(tek);
	}
	return(stack); // Возврат указателя на вершину стека
}

// Вставка стула
// Результат - указатель на вершину измененного списка
CHAIR* Insert(CHAIR *stack)
{
	CHAIR *tek, *prev, *p; // Указатель на текущую запись
	int MinHeight=32768; // Указатель на стул с минимальной высотой

	tek=stack;
	// Поиск стула с минимальной высотой
	while(stack && tek)
	{
		if(tek->height<MinHeight)
		MinHeight=tek->height;
		tek=tek->next; // Движение по списку
	}
	printf("\nMinHeight %d\n",MinHeight);
	return(stack);
}

void print(CHAIR* stack)
{
	while(stack!=NULL)
	{
		printf("\n");
		printf("Color: %s\n", stack->color);
		printf("Height: %d\n", stack->height);
		printf("Material: %s\n", stack->mater);
		printf("City: %s\n", stack->manufactur.city);
		printf("Factory: %s\n", stack->manufactur.factory);
		printf("Surname: %s\n", stack->manufactur.sname);
		stack=stack->next;
	}
}

// Вывод результата в файл
void Output(CHAIR* stack, char name[])
{
	FILE *f2=fopen(name,"w");

	// Вывод списка в файл
	while(stack!=NULL)
	{
		fprintf(f2,"Color: %s\n",stack->color);
		fprintf(f2,"Height: %d\n",stack->height);
		fprintf(f2,"City: %s\n",stack->manufactur.city);
		fprintf(f2,"Factory: %s\n",stack->manufactur.factory);
		fprintf(f2,"Surname: %s\n",stack->manufactur.sname);
		fprintf(f2,"Material: %s\n",stack->mater);
		stack=stack->next; // Движение по списку
	}
	fclose(f2);
}

main()
{
	CHAIR *first; // Указатель на вершину стека
	char namei[Lmax], nameo[Lmax]; // Названия входного и выходного файла

	printf("Enter name of input file: ");
	gets(namei);
	//printf("Enter name of output file: ");
	//gets(nameo);
	first=stack(namei); // Формирование стека
	print(first);
	first=Insert(first);
	print(first);
	/*if(first!=NULL)
	{
		Output(first,nameo);
		printf("The result put to file %s\n",nameo);
	}*/
	return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru