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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 22:22   #1
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
По умолчанию Легкий массив по СИ

всем привет) старшие братья)))

Задан массив S из N элементов. Определить его первый целочисленный ненулевой элемент, который делится на 3 без остатка. Найти произведение ненулевых элементов с индексами i = 0, 2, 4, 6,...... Вывести на экран индексыположительных элементов.

вот написал) (надо обязательно через маллок)

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include<stdlib.h>
main()
{int N,i,fl,P;
float *S;
double *ptr=NULL;
clrscr();
printf("vvod N:\n");
scanf("%d",&N);
S=(float*)malloc(N*sizeof(float));
for (i=0;i<N;i++)
{ printf("S[%d] = ",i);
scanf("%d",&S[i]);}
fl=0;
i=0;
while ((fl==0)&&(i<N))
{if ((S[i]!=0)&&(modf(S[i],ptr)==0)) {fl=1;}
i++;
}
if (fl==1) { printf("Pervyj = %d\n",i-1);}
else { printf("Netu\n");}
P=1;
printf("Indeksy:\n");
for (i=0;i<N;i++)
{if ((S[i]!=0)&&(i%2==0)) {P*=S[i];}
if (S[i]>0) {printf("%d\n",i);}
}
printf("Proizv = %f",P);
getch();
}

но чет ниче не работает(
PbIska вне форума Ответить с цитированием
Старый 27.04.2009, 23:06   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код заключайте в теги CODE ("#" на панели в окне редактирования).

Вот:
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
int N,i,fl;
float *S,P;
double ptr;

printf("vvod N:\n");
scanf("%d",&N);

S = (float*)malloc(N*sizeof(float));
for (i=0;i<N;i++)
 {
 printf("S[%d] = ",i);
 scanf("%f",&S[i]);
 }

P = 1;
fl=-1;
printf("Indeksy polozhitelnyh el-v: \n");
for(i=0; i<N; i++)
 {
  if(S[i]>0) printf("%d ",i);
  if(i%2==0 && S[i]!=0) P *= S[i];
  if(fl==-1 && modf(S[i],&ptr)==0 && (int)S[i]%3==0)
   fl = i;
 }
if(fl!=-1) printf("\n\nPervyj celochislennyj element: S[%d] = %.0f\n",fl,S[fl]);
printf("Proizv = %5.2f",P);
free(S);
getch();
}
добавлено:
Забыл память освободить. Исправлено.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 27.04.2009 в 23:27.
Sazary вне форума Ответить с цитированием
Старый 27.04.2009, 23:20   #3
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
По умолчанию

ааааааааааеееееееееееееее))) огромное спасибо профессор)
PbIska вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ответе бысто на легкий вопрос... t13sto Паскаль, Turbo Pascal, PascalABC.NET 2 28.05.2008 21:39
очень легкий вопрос ♠STO♠ Общие вопросы Delphi 5 15.07.2007 00:14