Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Неправильно работает код.

Ответить
Настройки темы
C/C++ - Неправильно работает код.

Новый участник


Сообщения: 14
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Неправильно работает код,а иммено та часть где надо найти сумму элементов масива, которые находятся между первым и последним отрицательными числами.
Помогите найти ошибку пожалуйста.
Среда Dev-C++
Код: Выделить весь код
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<locale.h>




main()

{
    setlocale (LC_ALL, "Rus");
    
     int N,i,s,first,last,M;
     int x[100];
     
     printf("Введите количество элементов масива N=");
     scanf("%d",&N);
     
     s=0;
     
     printf("Введите масив элементов s: ");
     for(i=1; i<=N; i++)
     
    
     scanf("%d",&x[i]);
     
     //Сума элементов масива с непарными элементами
     
     for(i=1; i<=N; i++)
     if (x[i] % 2!=0)
     
     s=s+x[i];
              
     printf("Сума непарных елементов масива = %d\n",s);
     
     //Сума элементов масива, которые находятся между первым и последним отрицательнымb числами
     
     for(i=1; i<=N; i++) if (x[i]<0) {i=first;break;}
     
     for(i=N; i>=first; i--) if (x[i]<0) {i=last;break;}
     
     printf("first=%d\n",first);
     printf("last=%d\n",last);
     
     int sum=0;
     
     
     
     for(i=first+1; i<last; i++) 
     
     sum+=x[i];
     
     printf("Сума элементов масива, которые находятся между первым и последним отрицательными числами = %d\n",sum);
     
     getch();
     return 0;
     
}

Отправлено: 17:36, 28-10-2012

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


pashazt, по всей видимости какая то ошибка с индексами. Где то +- еденица потеряна.
Какие результаты получаются на тестовых наборах
-1 0 1 2 3 4 5 -6
1 2 -1 3 4 5 -6 -7
и др.?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 19:07, 28-10-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всегда выбивает рандомное число.

Отправлено: 19:24, 28-10-2012 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


pashazt, надо инициализировать переменные!
first, last не определены. Первое.
Второе и самое важное -- не происходит их присвоение в циклах.
i=first => first=i !
отлаженный код

Код: Выделить весь код
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<locale.h>


main()

{
    setlocale (LC_ALL, "Rus");
    
     int N,i,s,first,last,M;
     int x[100];
     
     printf(" N=");
     scanf("%d",&N);
     printf("%d", N);
     s=0;
     
     //printf(" s: ");
     for(i=1; i<=(N); i++)
         
     scanf("%d",&x[i]);
     
     printf(" Massive N ");
     for(i=1; i<=(N); i++){
     	s=x[i];
     	printf("%d",i,"  ","%d",s);
	 }
      	
     for(i=1; i<=N; i++)
     if (x[i] % 2!=0)
     
     s=s+x[i];
              
     printf(" = %d\n",s);
     
     first=1;
     last=1;
     
     for(i=1; i<=N; i++) if (x[i]<0) {first=i;printf("\n first=%d\n",first);break;}
    
     for(i=N; i>=first; i--) if (x[i]<0) {last=i;printf("\n  last=%d\n",last);break;}
     
     printf("first=%d\n",first);
     printf("last=%d\n",last);
     
     int sum=0;
     
     
     
     for(i=first+1; i<last; i++) 
     
     sum+=x[i];
     
     printf(" = %d\n",sum);
     
     getch();
     return 0;
     
}

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 11:53, 29-10-2012 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Неправильно работает код.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
драйвер видеокарты не работает или работает неправильно Kilimnik Pasha Металлолом 6 24-04-2012 19:58
Медиа - Неправильно работает Web-камера sibirskiy_egik Microsoft Windows 2000/XP 12 31-12-2011 10:27
Неправильно работает агент sergey1234567 WSUS 2 26-04-2009 12:06
[решено] Неправильно работает Windows saiban Непонятные проблемы с Железом 2 26-12-2008 14:00
Неправильно работает сабвуфер 10adriano10 Непонятные проблемы с Железом 5 11-12-2008 14:13




 
Переход