21.12.2012, 14:52 | #1 (permalink) |
4846АМ
Регистрация: 07.05.2010
Сообщений: 1,941
Записей в дневнике: 22
Сказал(а) спасибо: 3
Поблагодарили 4 раз(а) в 3 сообщениях
Репутация: 7564
|
Программа выдает неверные значения
код: Код:
#include<conio.h> #include<stdio.h> #include<math.h> #define n 10 int a[n]; void g(int pe, int pe1) { int i,s=1; for(i=pe;i<pe1;i++) s*=a[i]; printf("%d",s); } main() { int pe,i,pe1; puts("Vvedite massiv"); for(i=0;i<n;i++) { printf("a[%d] ",i); scanf("%d",a); } for(i=0;i<n;i++) {if(a[i]==0) { pe=i+1; break; } } for(i=n;i>0;i--) {if(a[i]==0) { pe1=i-1; break; } } printf("%d %d\n",pe,pe1); //выводим индексы нулевых элементов (выводит не правильно) g(pe,pe1); getch(); return 0; }
__________________
Человек будет свободен до тех пор, пока дважды два равно четырем |
21.12.2012, 14:52 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Возможно участники форума давали ответ в похожих темах Вычислить значения функции, заданной графически Вычислить значения функции, заданной графически Программа для вычисления значения первой и второй производных функции x^n в заданной Значения напряжения в реальном времени Pascal ABC. Массивы. Нахождение значения переменной Y |
21.12.2012, 23:13 | #2 (permalink) |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
Ура тема оформлена нормально))) редкость в форуме программистов))
1) если вы что-то возвращаете из функции, то она обязательно должна иметь какой-то тип. т.е. перед main нужно поставить int 2) функция scanf ... вы ей передаете полностью массив, причем в цикле, т.е. несколько раз. Ну и кроме того, что она не умеет работать с массивом ей надо передавать еще и адрес переменной, а не саму переменную(ее значение) т.е. В вашем случае: Код:
scanf("%d", &a[i]); |
24.12.2012, 15:05 | #3 (permalink) |
4846АМ
Регистрация: 07.05.2010
Сообщений: 1,941
Записей в дневнике: 22
Сказал(а) спасибо: 3
Поблагодарили 4 раз(а) в 3 сообщениях
Репутация: 7564
|
лучше не стало... и вообще может быть это Code Blocks мне мозги парит? Проверьте пожалуйста в билдере программу
__________________
Человек будет свободен до тех пор, пока дважды два равно четырем |
24.12.2012, 17:49 | #4 (permalink) |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
Я как раз в нем и работаю.
Код: Код:
#include<conio.h> #include<stdio.h> #include<math.h> #define n 10 int a[n]; void g(int pe, int pe1) { int i,s=1; for(i=pe;i<pe1;i++) s*=a[i]; printf("%d",s); } int main() { int pe,i,pe1; puts("Vvedite massiv"); for(i=0;i<n;i++) { printf("a[%d] ",i); scanf("%d", &a[i]); printf("a[%d] = %d\n",i,a[i]); } for(i=0;i<n;i++) {if(a[i]==0) { pe=i; break; } } for(i=n-1;i>0;i--) {if(a[i]==0) { pe1=i; break; } } printf("%d %d\n",pe,pe1); //выводим индексы нулевых элементов (выводит не правильно) g(pe+1,pe1); getch(); return 0; } Код:
Vvedite massiv a[0] 2 a[1] 3 a[2] 5 a[3] 0 a[4] 2 a[5] 5 a[6] 3 a[7] 4 a[8] 0 a[9] 2 3 8 120 |
24.12.2012, 18:29 | #5 (permalink) |
4846АМ
Регистрация: 07.05.2010
Сообщений: 1,941
Записей в дневнике: 22
Сказал(а) спасибо: 3
Поблагодарили 4 раз(а) в 3 сообщениях
Репутация: 7564
|
спасибо огромное
__________________
Человек будет свободен до тех пор, пока дважды два равно четырем |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|