Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2012, 15:58   #1
антоний
 
Регистрация: 19.01.2012
Сообщений: 3
По умолчанию Исправление несложных программ

Братюни, помогите исправить несложные проги и укажите где я сделал ошибку(я только начинаю программировать)...

Первая программа:

вот чего-то не понимаю, почему после ввода строк консольное окно просто пропадает и не показывает равные ли строки, или нет?

Код:
#include "stdafx.h"
#include "iostream"
#include "string.h"

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL, "Russian" );
	char s1[500];
	char s2[500];
	printf("\nВведите первую строку\n\n");
	gets(s1);
	printf("\nВведите вторую строку\n\n");
	gets(s2);
	if(strcmp(s1,s2)==0)
		printf("строки %s и %s равны", s1, s2);
	else
		printf("строки %s и %s разные", s1, s2);
	return 0;
}
Вторая программа:

меняю все буквы "а" из файла input.txt на буквы "б" и записываю в output.txt, но в выходном файле ВСЕ БУКВЫ(НЕ ТОЛЬКО "а") меняются на "б", ПОЧЕМУ?

Код:
#include "stdafx.h"
#include "iostream"


int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL, "Russian" );
	int i;
	char s[700];
	FILE *fin, *fout;
	fin=fopen("C:\\Users\\Антон\\Desktop\\input.txt", "r");
	fout=fopen("C:\\Users\\Антон\\Desktop\\output.txt","w");
	while ( NULL !=fgets(s, 700, fin))
	{
		i=0;
		while(s[i]!='\0')
		{
			if(s[i]=='а');
			  s[i]='б';
			  i++;
		}
		fprintf(fout, "%s", s);
	}
	fclose(fin);
	fclose(fout);

	return 0;
}

Последний раз редактировалось ACE Valery; 19.01.2012 в 18:19.
антоний вне форума Ответить с цитированием
Старый 19.01.2012, 16:21   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

1) в конце поставь getchar();
2) после if стоит лишняя ;
onewho вне форума Ответить с цитированием
Старый 19.01.2012, 16:26   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от антоний Посмотреть сообщение
вот чего-то не понимаю, почему после ввода строк консольное окно просто пропадает и не показывает равные ли строки, или нет?
Программко завершается.


Код:
#include <conio.h> //< --- требуется только для объявления функции.
#include "stdafx.h"
#include "iostream"
#include "string.h"

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL, "Russian" );
	char s1[500];
	char s2[500];
	printf("\nВведите первую строку\n\n");
	gets(s1);
	printf("\nВведите вторую строку\n\n");
	gets(s2);
	if(strcmp(s1,s2)==0)
		printf("строки %s и %s равны", s1, s2);
	else
		printf("строки %s и %s разные", s1, s2);
	return 0;
        getch(); //<---теперь не закроется, пока не нажмешь а клавишу
}
Цитата:
Сообщение от антоний Посмотреть сообщение
Вторая программа:

меняю все буквы "а" из файла input.txt на буквы "б" и записываю в output.txt, но в выходном файле ВСЕ БУКВЫ(НЕ ТОЛЬКО "а") меняются на "б", ПОЧЕМУ?
Код:
#include "stdafx.h"
#include "iostream"


int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL, "Russian" );
	int i;
	char s[700];
	FILE *fin, *fout;
	fin=fopen("C:\\Users\\Антон\\Desktop\\input.txt", "r");
	fout=fopen("C:\\Users\\Антон\\Desktop\\output.txt","w");
	while ( NULL !=fgets(s, 700, fin))
	{
		i=0;
		while(s[i]!='\0')
		{
			if(s[i]=='а');  //< -- внимательно смотрим сюда
			  s[i]='б';
			  i++;
		}
		fprintf(fout, "%s", s);
	}
	fclose(fin);
	fclose(fout);

	return 0;
}
_Bers вне форума Ответить с цитированием
Старый 19.01.2012, 18:32   #4
антоний
 
Регистрация: 19.01.2012
Сообщений: 3
По умолчанию

по поводу первой проги: всё равно не показывает результат сравнения, после того, как я ввёл вторую строку и нажал enter сразу же закрывается консольное окно.

по поводу второй проги: я удалил после if точку с запятой-результат тот же, все буквы "б"
антоний вне форума Ответить с цитированием
Старый 19.01.2012, 18:48   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Код:
        ...
	return 0; //<--- программа закрывается прежде, чем срабатывает ниже стоящая инструкция
        getch(); //<---теперь не закроется, пока не нажмешь а клавишу
}
_Bers вне форума Ответить с цитированием
Старый 19.01.2012, 21:36   #6
антоний
 
Регистрация: 19.01.2012
Сообщений: 3
По умолчанию

Спасибо, прога со сравнением двух строк заработала!
антоний вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько несложных макросов в Excel. begg Фриланс 1 30.12.2011 21:22
пара несложных вопросов... Wargusha Общие вопросы C/C++ 7 15.08.2011 00:35
нужно написать несколько несложных программок [Паскаль] ganchs Помощь студентам 5 26.12.2010 21:28
2 несложных программы на C# nrbt Фриланс 1 13.04.2010 21:23
Нужно решить 12-15 несложных задачек QBasic *GobliN Фриланс 1 02.06.2008 20:46