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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2016, 04:26   #1
Blekzet
Новичок
Джуниор
 
Регистрация: 01.06.2016
Сообщений: 2
По умолчанию Не могу понять в чем ошибка.

Дана задача: "Элементы файлов f1 и f2 упорядочены по не убыванию. Объединить эти элементы в один файл f3, также упорядоченный по не убыванию."

Тестовые данные:
(Первый файл) - {1 3 7 7 8 9 9 12 14 17}
(Второй файл) - {4 5 5 7 7 7 8 11 11 15}
(Файл вывода в моем случае) - {1 3 4 5 5 7 7 7 7 7 8 11 11 158 9 9 12 14 17}
P.S - не очень силен в программировании, просто ткните носом в ошибку...

Я набросал такую программу:
Код:
 #include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <io.h>
 
 
void association (FILE *f1, FILE *f2, FILE *f3) {
fseek(f1,0,SEEK_END);
long sizef1 = ftell(f1);
fseek(f2,0,SEEK_END);
long sizef2 = ftell(f2);
 
int a,b,i,j;
fseek(f1,0, SEEK_SET);
fseek(f2,0, SEEK_SET);
i = 0; j = 0;
while ((i <= sizef1-1) || (j <= sizef2-1)){
  if ((i <= sizef1-1) && (j <= sizef2-1)){
    fseek(f1, i, SEEK_SET);
    a = getc(f1);
    fseek(f2, j, SEEK_SET);
    b = getc(f2);
    if (a<b){
      fputc(a, f3);
      i++;}
    else{
      fputc(b, f3);
      j++;}
}
  else if ( j > sizef2-1) {
    fseek(f1,i, SEEK_SET);
    a = getc(f1);
    fputc(a, f3);
    i++;}
  else if ( i > sizef1-1){
    fseek(f2, j, SEEK_SET);
    b = getc(f2);
    fputc(b, f3);
    j++;}
}
}
 
int main(){
setlocale(LC_ALL, "RUS");
char fname1[20],fname2[20],fname3[20];
 
printf("Введите имя первого файла с расширением: ");
scanf("%s", fname1);
printf("Введите имя второго файла с расширением: ");
scanf("%s", fname2);
printf("Введите имя третьего файла с расширением, для записи результата: ");
scanf("%s", fname3);
 
FILE *f1, *f2, *f3;
 
f1 = fopen(fname1, "r");
f2 = fopen(fname2, "r");
f3 = fopen(fname3, "w");
 
association(f1, f2, f3);
 
fclose(f1);
fclose(f2);
fclose(f3);
 
return 0;
}

Последний раз редактировалось Blekzet; 10.06.2016 в 04:32.
Blekzet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять, в чем ошибка Sv. Общие вопросы C/C++ 8 01.11.2012 18:07
в чем ошибка? не могу понять... lexflax C++ Builder 1 28.01.2012 15:35
Си. Не могу понять в чем ошибка Gerbera Помощь студентам 2 12.07.2011 19:11
Не могу понять в чем ошибка.... Blonde Помощь студентам 0 21.05.2011 14:19
Не могу понять, в чем ошибка FlashProStar Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 01.12.2010 12:20