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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2010, 19:09   #1
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
По умолчанию найти ошибку

Дана задача:
Для данной буквы латинского алфавита нужно вывести справа стоящую букву на стандартной клавиатуре. При этом клавиатура замкнута, т.е. справа от буквы «p» стоит буква «a», от буквы «l» стоит буква «z», а от буквы «m» — буква «q».

Написал решение, но при q выводит М. Объясните почему?
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

int main()
{	int i;                                     
	char r[1],m[1], n[28]="qwertyuiopasdfghjklzxcvbnmq";
	ifstream f;
	f.open("input.txt");
	f>>m[1];
	ofstream s;
	s.open("output.txt");
	for (i=1;i<=26;i++)
	{
		if (n[i]==m[1]) 
		r[1]=n[i+1];
	}
	s<<r[1];
	f.close();
	s.close();
	return 0;
}
sergio11 вне форума Ответить с цитированием
Старый 03.09.2010, 19:20   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

r[1], m[1] не существует. Индексы массивов начинаются с нуля, а не с единицы.
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

int main()
{	int i;                                     
	char r,m, n[]="qwertyuiopasdfghjklzxcvbnmq";
	ifstream f;
	f.open("input.txt");
	f>>m;
	ofstream s;
	s.open("output.txt");
	for (i = 0; i < sizeof(n); i++)
	{
		if (n[i] == m) 
		{
			r=n[i+1];
			break;
		}
	}
	s<<r;
	f.close();
	s.close();
	return 0;
}
pu4koff вне форума Ответить с цитированием
Старый 03.09.2010, 19:29   #3
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
По умолчанию

спасибо, ноя просто добавил w в конце и система приняла) но буду иметь ввиду как правильно
sergio11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти ошибку sergio11 Паскаль, Turbo Pascal, PascalABC.NET 2 19.05.2010 01:22
найти ошибку Яська Помощь студентам 1 04.04.2010 17:23
Найти ошибку stanBRY Общие вопросы C/C++ 17 29.03.2010 23:16
найти ошибку rUs_LAN Общие вопросы C/C++ 8 14.05.2009 12:02