Переделать задачу под файловый ввод и вывод.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SeoBee, 2 Dec 2011.

  1. SeoBee

    SeoBee New Member

    Joined:
    9 Oct 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Есть такая вот задача:
    Code:
    #include <stdio.h>
    
    const int SIZE = 10;
    int main()
    {
       int line[SIZE][2]; //начало и конец линии
       int i=0,n=0; 
       printf("Вводите координаты точек, -1 для выхода:\n");
       for(i = 0; i < SIZE; i++){
          scanf("%i",&line[i][0]);
          scanf("%i",&line[i][1]);
          if(line[i][0] == -1 || line[i][1] == -1) break;
          printf("Отрезок [%i;%i] введен, вводите следующий:\n",line[i][0],line[i][1]);      
       }
       //условие 1: только отрезок с самой маленькой начальной точкой возможно перекрывает остальные.
       int min = line[0][0], min_index = -1;
       for(n = 0; n < i; n++){
          if(min >= line[n][0]){
             min_index = n;
             min = line[n][0];
             printf("min: %i\n",min);
          }
       }
       //условие 2: конечная точка этого отрезка должна быть больше других
       for(n = 0; n < i; n++){
          if(line[min_index][1] >= line[n][1])
             continue;
          else 
             break;
       }
       
       if (n == i)
          printf("Отрезок [%i;%i] под номером %i пересекает все остальные\n",line[min_index][0],line[min_index][1],min_index+1);
       else 
          printf("Отрезка, пересекающего все остальные, нет\n");
       return 0;
    }
    Текст:
    Пользователь вводить действительные числа a1, b1, a2, b2....a24, b24. Где ai < bi. Пары числе a1 и b1 рассматривать как начало и конец отрезка на одной и той же прямой, нужно найти отрезок который пересекает все остальные. Если такого нет вывести сообщение об этом.

    Что нужно сделать:
    Реализировать эту задачу на файловом вводе и выводе. Бинарном или текстовом.
    Связь через ЛС. Оплата через WebMoney. Бюджет 5WMZ
     
  2. sl1k

    sl1k Member

    Joined:
    31 Jul 2009
    Messages:
    106
    Likes Received:
    26
    Reputations:
    5
    PHP:
    #include <stdio.h>

    const int SIZE 10;
    int main()
    {
       
    FILEfin fopen("in.txt","r"); // Файл с кординатами
       
    FILEfout fopen("out.txt","w");// Сюда запишется результат
       
       
    int line[SIZE][2]; //начало и конец линии
       
    int i=0,n=0
       
    //printf("Вводите координаты точек, -1 для выхода:\n");
       
    for(0SIZEi++){
          
    fscanf(fin,"%i",&line[i][0]);
          
    fscanf(fin,"%i",&line[i][1]);
          if(
    line[i][0] == -|| line[i][1] == -1) break;
          
    fprintf(fout,"Отрезок [%i;%i] введен, вводите следующий:\n",line[i][0],line[i][1]);      
       }
       
    //условие 1: только отрезок с самой маленькой начальной точкой возможно перекрывает остальные.
       
    int min line[0][0], min_index = -1;
       for(
    0in++){
          if(
    min >= line[n][0]){
             
    min_index n;
             
    min line[n][0];
             
    fprintf(fout,"min: %i\n",min);
          }
       }
       
    //условие 2: конечная точка этого отрезка должна быть больше других
       
    for(0in++){
          if(
    line[min_index][1] >= line[n][1])
             continue;
          else 
             break;
       }
       
       if (
    == i)
          
    fprintf(fout,"Отрезок [%i;%i] под номером %i пересекает все остальные\n",line[min_index][0],line[min_index][1],min_index+1);
       else 
          
    fprintf(fout,"Отрезка, пересекающего все остальные, нет\n");
       return 
    0;
    }