Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Помогите устранить ошибку


Автор: lancelot555 10.12.2005, 03:19
Задание: Ввести с клавиатуры последовательных из 15 различных чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа)

Вот мой код, минимальное число находится ошибочно и сумма тоже считается ошибочно:
Код

#include<CONIO.H>
#include<STDIO.H>
int main() {
int sum,min=30000,max=0,i,mass[15],maxid,minid;
clrscr();
gotoxy(24,3);
printf("Курсовая работа по информатике");
gotoxy(33,4);
printf("вариант 27\n\n");
printf("Задание: Ввести с клавиатуры последовательность из 15 различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).");
printf("\n\nВведите 15 целых чисел: ");
for(i=1;i<=15;i++){
scanf("%d",&mass[i]);
}

printf("\nИсходная строка: ");
for(i=1;i<=15;i++){
printf("%d ",mass[i]);
}

for(i=1;i<=15;i++){
if(mass[i]>max){max=mass[i];maxid=i;}
if(mass[i]<min){min=mass[i];minid=i;}
}
printf("\nМаксимальное значение - %d, %d",max,min);

for(i=maxid;i<=minid;i++){
sum=sum+mass[i];
}
printf("\nСумма последовательности равна: %d",sum);

getch();
return 0;  }



smile

Автор: Fixin 10.12.2005, 03:26
Цитата(lancelot555 @ 10.12.2005, 04:19)
Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа)
Вообще-то, в эти условия входят все 15 чисел...
Или минимуи и максимум задаются отдельно?
Добавлено @ 03:28
Цитата(lancelot555 @ 10.12.2005, 04:19)
int sum,min=30000,max=0
Ошибка здесь. Минимум и максиму инициализироваться должны любым элом массива (например, первым).

Автор: Dov 10.12.2005, 04:56
Код
#include<CONIO.H>   
#include<STDIO.H> 
  
int main()
{
    int sum = 0,
        min,
        max,
        i,
        mass[15],
        maxid = 0,
        minid = 0; 

    clrscr();   
    gotoxy(24, 3);    
    printf("Курсовая работа по информатике");   
    gotoxy(33, 4); 
    printf("вариант 27\n\n");   
    printf("Задание: Ввести с клавиатуры последовательность из 15 различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).");  
    printf("\n\nВведите 15 целых чисел: ");
    for(i = 0; i < 15; i++)
        scanf("%d", &mass[i]);  
    printf("\nИсходная строка: ");  
    for(i = 0; i < 15; i++)
        printf("%d ", mass[i]);
    
    min = max = mass[0];

    for(i = 1; i < 15; i++)
    {
        if(mass[i] > max)
        {
            max = mass[i];
            maxid = i;
        }   
        if(mass[i] < min)
        {
            min = mass[i];
            minid = i;
        }
    }   
    printf("\nМаксимальное значение - %d, %d", max, min);   
    for(i = (minid < maxid ? minid : maxid); i <= (minid < maxid ? maxid : minid); i++ )
        sum += mass[i];    
    printf("\nСумма последовательности равна: %d", sum);    
    getch();    
    return 0;
}


Автор: lancelot555 10.12.2005, 21:03
Dov Спасибо большое за код...

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