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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 20:00   #1
Immoralist
Подтвердите свой е-майл
 
Регистрация: 14.04.2012
Сообщений: 38
Восклицание СИ, одномерный массив, где ошибка?

Задача:
Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов AK, которые удовлетворяют двойному неравенству A1 < AK < A10. Если таких элементов нет, то вывести 0.

Программа:
PHP код:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main()
{
    const 
short n=10;
        
short a[n], ik=2t=1x=0;
    
srand(time(0));
 
//формируем и выводим эл. массива с индексами
    
for (i=0i<ni++) 
    {
        
a[i]=25+rand()%76;
        
printf("A%u:%u\t",t,a[i]);
        
t++;
    }
//прогоняем все элементы по условию, записываем индекс последнего
    
for (k=2k<nk++)  
    {
        if ((
a[1]<a[k]) && (a[k]<a[10])) x=k;
    }
    
printf("\n");
        
printf("%u",x);
    
printf("\n\n");

Всегда выводит 0, хотя визуально видно что есть подходящие элементы.

Последний раз редактировалось Immoralist; 25.04.2012 в 20:02.
Immoralist вне форума Ответить с цитированием
Старый 26.04.2012, 10:22   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Ошибка здесь
Код:
 for (k=2; k<n; k++)  
    {
        if ((a[1]<a[k]) && (a[k]<a[10])) x=k;
    }
Вам уже объясняли, что индексация в массивах С и С++ начинается с 0, т.е. если у Вас в массиве 10 элементов, то это a[0],a[1]...a[9], следовательно код д.б.
Код:
 for (k=1; k<n; k++)  
    {
        if ((a[0]<a[k]) && (a[k]<a[9])) x=k;
    }
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 26.04.2012, 11:30   #3
Immoralist
Подтвердите свой е-майл
 
Регистрация: 14.04.2012
Сообщений: 38
По умолчанию

Спасибо.
Ещё не привык к индексации с 0...
Immoralist вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
одномерный массив ошибка Op1nG.Spark Помощь студентам 1 04.12.2011 13:15
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38
Двухмерный массив. Не пойму где ошибка TYMON Общие вопросы C/C++ 3 20.06.2010 00:30
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54