Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal->C]Нахождение мин и макс элементов


Автор: SunRaider 24.5.2007, 19:13
Перепишите, пожалуйста, на Си:

Код
uses CRT; { библиотека для очистки экрана }
var
 max, min, R, count, i, z: integer;
 data: string;
 myfile: text;
{-------------------------------------------------}

{ Функция преобразования строки в число на "ходу" }
function StrToInt(str: string): integer;
var
 error, int: integer;
begin
 Val(str,int,error);
 if (error = 0) then begin StrToInt:=int; end
 else StrToInt:=0;
end;
{-------------------------------------------------}
begin
 ClrScr; { очищаем экран }
 while ( (count<2) or (count>10) ) do begin { цикл завершиться, если 2<=count<=10 }
  write('Enter count of string (2..10): '); readln(count);
 end;
write ('1.File or 2.Keyboard');
readln (z);
if z=1 then
begin
 assign(myfile,'230.dat'); { открываем файл }
  reset(myfile); { для чтения }
  read(myfile,data); { читаем строку }
 close(myfile); { закрываем его }
end;
if z=2 then
begin
write('Vvedite stroku simvolov -> ');
read(data);
end;
 writeln; { дизайн ;) }

 for i:=1 to count do write(data[i],';'); { выводим данные с заданными условиями }
 ;

 max:=StrToInt(data[1]); { макс. = 1 - му элементу }
 min:=StrToInt(data[1]); { мин. = 1 - му элементу }
 for i:=2 to count do begin { цикл проверки }
  if (StrToInt(data[i])>max) then max:=StrToInt(data[i]); { проверка на максимум }
  if (StrToInt(data[i])<min) then min:=StrToInt(data[i]); { проверка на минимум }
 end;

 R:=(max-min)+1; { находим разность }

 writeln; { опять дизайн ;) }

 writeln('Max = ',max); { выводим макс. }
 writeln('Min = ',min); { выводим мин. }
 writeln('R = ',R); { выводим разность }

 assign(myfile,'230.txt'); { открываем (создаем) новый файл}
  rewrite(myfile);
  writeln(myfile,Copy(data,1,count)); { записываем ряд чисел }
  writeln(myfile,'max=',max); { записываем максимум }
  writeln(myfile,'min=',min); { записываем минимум }
  writeln(myfile,'r=',R); { записываем разность }
 close(myfile); { закрываем }
 readln; { ждем нажатия Enter }
end.


Очень нужно сегодня! Заранее огромное спасибо!

Автор: flow90 24.5.2007, 23:10
если нахождение max и min элементов, и их разницы, то вот вроде похожее...но я не компилировала...

Код

#include <iostream.h>
#include <stdlib.h>
int i, max, m , A, S, N, dif;
int *a;
int  main()
{
    max = 0;
    cout << "\n vvedite koli4estvo 4isel N v posledovatel'nosti " << "\n N = ";
    cin >> N;
    a = (int*)calloc(N, sizeof(int));
    cout << "\n vvedite 4isla posledovatel'nosti An: \n";

    for( i = 0; i < N; i++)
    {
        cout << "A" << i + 1 << " ";
        cin >> A;
        a[i] = A;
        if (max < a[i])
        {
            max = a[i];
        }
                                if (min > a[i])
        {
                        min = a[i];
        }
                                dif = max - min;
    }
    cout << "\n maksimal'noe 4islo = " << max;
    cout << "\n minimal'noe 4islo = "  << min;
    cout << "\n raznost' = "  << dif;
    return 0;
}




да, вот только забыла, что там надо файл добавить...
in = fopen("\\file.txt", "rt");
out = fopen("\\outfile.txt", "wt");

и потом   fclose(in);
                fclose(out);

если я вобще правильно поняла задание smile smile

Автор: Klin 25.5.2007, 15:36
flow90, изначальный http://forum.vingrad.ru/index.php?showtopic=152403&view=findpost&p=1140854. Если пригодится  smile 

Автор: SunRaider 28.5.2007, 22:33
Спасибо, но это совсем не то, что мне нужно!
Мне нужен Си, а не С++!
С printf и scanf!

И нужен очень срочно!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)