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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2012, 12:59   #1
amar
Новичок
Джуниор
 
Регистрация: 13.11.2012
Сообщений: 1
По умолчанию необходимо решить задачу

Дана последовательность не более 30 ненулевых целых чисел,
индикатором окончания последовательности является 0. Ввести
последовательность в одномерный массив и Найти порядковые номера и сумму двух наибольших элементов.

Написал в паскале!
Код:
program prim; 
var b:array[1..30] of integer; 
i,k,max,mex,n,a,x:integer; 
begin 
for i:=1 to 30 do begin 
readln(x); 
if x=0 then break; 
b:=x; 
end; 
for i:=1 to 30 do 
if b>max then begin 
max:=b; 
n:=i; 
end; 
for i:=1 to 30 do 
if b>mex then if b<max>; 
a:=i; 
end; 
writeln('индекс1=',n,', ','индекс2=',a,', ', 'сумма=',max+mex); 
end.
А оказывается надо в СИ! Занятия по которому я пропустил(
Хоть и говорят, что коды одни и те же почти, все равно не могу понять(
Помогите переписать эту задачу в СИ!
Заранее благодарен!

Последний раз редактировалось ACE Valery; 13.11.2012 в 14:11.
amar вне форума Ответить с цитированием
Старый 13.11.2012, 13:12   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Построчный перевод Вашего кода на C, за правильность решения не ручаюсь никоим образом:
Код:
void prim(void){ //program prim; 
  int b[30]; //var b:array[1..30] of integer;
  int i,k,max,mex,n,a,x; //i,k,max,mex,n,a,x:integer; 
  //begin
  for(i=1; i<=30; ++i) { //for i:=1 to 30 do begin
    scanf("%d", &x); //readln(x);
    if(x==0) break; //if x=0 then break;
    b = x; //b:=x;
  }//end;
  for(i=1; i<=30; ++i){ //for i:=1 to 30 do
    if(b>max){//if b>max then begin
      max = b; //max:=b;
      n = i; //n:=i;
    } //end;
  }
  for(i=1; i<=30; ++i){ //for i:=1 to 30 do
    if(b>mex) { if(b<max) ; //if b>mex then if b<max>;
      a = i; //a:=i;
    } //end;
  }
  printf("index1=%d, index2=%d, sum=%d", n, a, max+mex); //writeln('индекс1=',n,', ','индекс2=',a,', ', 'сумма=',max+mex);   
}//end.
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо решить задачу в C# Надежда1286 Помощь студентам 0 29.09.2012 21:42
Необходимо решить задачу в excel Narina Microsoft Office Excel 1 05.09.2012 21:38
Необходимо решить задачу на Borland Delphi и Pascal. Дёня Помощь студентам 3 21.05.2012 15:22