|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Прошу помочь найти ошибку в программе. |
|
Прошу помочь найти ошибку в программе.
|
Пользователь Сообщения: 54 |
Профиль | Отправить PM | Цитировать
Всем привет!
У меня вот возник такой вопрос, на который я уже совершенно не знаю ответа.... я как бы занимаюсь в данное время изучением программирования на языке С с использованием массивов и на данном этапе передо мной встал такой вопрос: необходимо написать программу: Вводится ряд Т, состоящий из символов, затем вводятся значения символов u и v. Программа заменяет в ряду Т значения символа u на значения символа v и наоборот, значения символа v на значения символа u. Т.о. формируется ряд Q, который и выводится на экран. Как я понял, Т, Q, u, v - это все массивы. Все это выглядит примерно так: T= asdafgfh v=a; u=f; Q=fsdfagah Ну и написал я как бы соответствующую программу: #include <stdio.h> int main() { char T[10], Q[10], v[1], u[1];//* u, v - это у нас массивы, состоящие из 1-ого элемента*// char temp[10]; int i=0; { printf("Enter T: ", T[10]); scanf("%s", &T[10]); T[10]=temp[10];//* отправляем полученный ряд Т во временную папку temp*// temp[10]=Q[10];//*как бы присваиваем ряду Q значения ряда Т, т.е. т.о. ряд Q у нас формируется из символов ряда T*// } printf("Please, enter u:", u[1]); scanf ("%s", & u[1]); printf("Please, enter v:", v[1]); scanf ("%s", & v[1]); do { Q[i]=0;//* Определяем i-тый элемент ряда Q*// } while ((i=i+1)<=10); do { temp[i]=0;//*Определяем i-тый элемент ряда temp (Q=T=temp)*// } while ((i=i+1)<=10); for(i = 0; i<=10; ++i) if(Q[i]==u[1]) { Q[i]==v[1]; } else { Q[i]==temp[i]; }//*Если и-тый элемент равен значению u, меняем его на значение v, в противном случае он равен своему прежнему значению, взятому из temp*// if (Q[i]==v[1]) { Q[i]==u[1]; } else { Q[i]==temp[i]; }//* то же самое, только теперь с v*// Q[10]==Q[1]&&Q[2]&&Q[3]&&Q[4]&&Q[5]&&Q[6]&&Q[7]&&Q[8]&&Q[9]; { printf("Q=10.0 %s/n",Q[10]); } Вот только программа эта не работает... она запускается, запрашивает введение T, u, v, а потом просто выдает ошибку segmentation fault. Кто-нибудь может подсказать почему? Спасибо.... |
|
------- Отправлено: 12:38, 04-12-2005 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Zippy
Щас посмотрим... |
------- Отправлено: 17:54, 04-12-2005 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 278
|
Профиль | Отправить PM | Цитировать Вот код:
#include <stdio.h> #include <string.h> #define N 10 void main() { char T[ N ], Q[ N ]; // Объявляем массивы char v, u, tmp; // Заменяемые символы int i = 0; // счетчик int lenQ = 0; // Длина строки // Вводим данные printf( "Enter T: " ); scanf( "%s", T ); printf( "\nPlease, enter u:" ); scanf ( "\n%1s", &u ); printf( "\nPlease, enter v:" ); scanf ( "\n%1s", &v ); // Выводим полученные данные printf( "\nYou entered: T=%s, u=%c, v=%c", T, u, v ); // Копируем Т в Q strcpy( Q, T ); // Получаем и выводим длину строки lenQ = strlen( Q ); printf( "\nLength T: %d\n", lenQ ); // Пробегаем в цикле по строке for( i = 0; i < lenQ; i++ ) { tmp = Q[ i ]; if( tmp == u ) Q[ i ] = v; if( tmp == v ) Q[ i ] = u; } // Выводим результат printf( "\nResult Q: %s", Q ); } Результат: Enter T: asdafgfh Please, enter u:a Please, enter v:f You entered: T=asdafgfh, u=a, v=f Length T: 8 Result Q: fsdfagah |
Отправлено: 18:15, 04-12-2005 | #12 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Щас потестим... если заработает, кидай адрес, пришлю!
На первый взгляд выглядит неплохо! |
------- Отправлено: 18:17, 04-12-2005 | #13 |
Старожил Сообщения: 278
|
Профиль | Отправить PM | Цитировать Хм, странный здесь контейнер code, куда он все пробелы мои дел в начале каждой строки? Да и еще это полоса прокрутки, неудобно с ней...
|
Отправлено: 18:21, 04-12-2005 | #14 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Zippy
И правда работает! Кидай свой адрес куда-нибудь, такая помощь не может остаться без вознаграждения... |
------- Отправлено: 19:12, 04-12-2005 | #15 |
Новый участник Сообщения: 16
|
Профиль | Сайт | Отправить PM | Цитировать mar
Ну скорее зависит от компиллятора имхо..... |
------- Последний раз редактировалось Duddits, 05-12-2005 в 09:04. Отправлено: 08:47, 05-12-2005 | #16 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Обработка массивов данных, программа на паскале. Не могу найти ошибку в программе | yulia_hoi | Программирование и базы данных | 6 | 08-01-2010 14:50 | |
[решено] Прошу помочь | evm180 | Лечение систем от вредоносных программ | 23 | 24-02-2009 08:35 | |
Очень прошу помочь... | aviss | Выбор отдельных компонентов компьютера и конфигурации в целом | 6 | 09-08-2008 23:26 | |
Интерфейс - Прошу помочь со стайлбулдером ! | Tanr | Хочу все знать | 1 | 25-04-2008 19:36 | |
DRVSPACE. Очень прошу помочь! | dima123 | Microsoft Windows 95/98/Me (архив) | 3 | 27-02-2005 16:35 |
|