Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

можете помочь с задачей на языке си задача на одномерный массив

Альмир Салахов Знаток (289), закрыт 9 лет назад
дана последовательность чисел А (к) (к=1,2,3,...n). Выбрать из массива кратные 5, подсчитать их и найти сумму этих чисел
Лучший ответ
Krab Bark Искусственный Интеллект (284539) 9 лет назад
#include "stdio.h"
int main(){
int k,n,m=0,a[100]; long s=0;
printf("Enter the size of array: "); scanf("%d",&n);
printf("Enter %d elements of array\n",n);
for(k=0;k<n;k++)scanf("%d",&a[k]);
for(k=0;k<n;k++)if(a[k]%5==0)s+=a[k],m++;
printf("m=%d, sum=%ld\n",m,s);
printf("Press Enter for exit\n");
getchar(); getchar(); return 0;}

P.S. Стоит добавить, что я на всякий случай писал это на старом варианте С, со временем он заметно модернизировался и кое что можно было бы написать элегантнее. Но я не знаю, преподается у вас современный С или старый.
Например, в современном С переменные можно объявлять не только в начале программы, а почти где угодно, return 0 не нужен, допускаются массивы с длиной, задаваемой переменными... А в старом С это было нельзя.
Альмир СалаховЗнаток (289) 9 лет назад
ну вот у меня не ( getchar(); getchar(); return 0;}),а просто getch;}
и немного поработал и вот что получилось
в принципе то же самое)
#include "stdio.h"
#include "conio.h"
int main()
{
int k,n,m=0,a[100];
float s=0;
printf("razmer massiva= ");
scanf("%d",&n);
printf("vvedite %n elementi massiva\n",&n);
for(k=0;k<n;k++)
printf ("A[%d]=\n",k);
scanf("%d",&a[k]);
for(k=0;k<n;k++)
if(a[k]%5==0)
{
s+=a[k],m++;
}
printf("kolich kratnih 5=%d,\n sum=%d\n",m,s);

getch();
}
Альмир СалаховЗнаток (289) 9 лет назад
только вот одна загвостка она почему то сумму не вычисляяет
Krab Bark Искусственный Интеллект (284539) Ты определил переменную для суммы как float, а выводишь ее по формату для целых - %d, а надо %f. Кроме того, подсказку и ввод значения элемента массива надо заключить в один блок, то есть в фигурные скобки. Ну и еще несколько мелочей. Исправленная программа: #include "stdio.h" #include "conio.h" int main() { int k,n,m=0,a[100]; float s=0; printf("razmer massiva= "); scanf("%d",&n); printf("vvedite elementi massiva\n"); for(k=0;k<n;k++){ printf ("A[%d]=",k+1); scanf("%d",&a[k]);} for(k=0;k<n;k++) if(a[k]%5==0)s+=a[k],m++; printf("kolich kratnih 5=%d,\n sum=%f\n",m,s); getch();}
Остальные ответы
diablo Мыслитель (7021) 9 лет назад
int count = 0;
int sum = 0;
for (int i = 0;i< n;i++)
if (a[i] % 5 == 0)
{
++count;
sum+=a[i];
}
Альмир СалаховЗнаток (289) 9 лет назад
извините просто это для высокого уровня я еще только несколько месяцев си изучаю
а можете по проще сделать? я просто таких процедур не изучал
мне надо что то пахожее на это
#inklude"conio.h"
#include"stdio.h"
#include"math.h"
#include"stdlib.h"
main()
{
const int n=10 ;int i;
float A[i];
printf ('"&A[i]ishodniy massiv":\n);

for (i=0 ;i<k;i++0);
{
A[k]=random(100)+50;
}
scanf ("%d",&a[i]);
for (i=0;i<k;i++);
{
printf("%d",a[i])
}
getch;();
}
Валерий Шестаков Просветленный (25520) 9 лет назад
for(i=0;i<k;++i)
if(!(arr[i]%5)){
++cnt;
sum += arr[i];
}
Альмир СалаховЗнаток (289) 9 лет назад
у меня уровень для начинающих а такое изучают только в 3 курсе
а я в первом
Krab Bark Искусственный Интеллект (284539) Ну, честно, говоря, чтобы добраться до этого уровня, не надо изучать С два года. Не знаю, что у вас изучают, но можно забежать и вперед. С - простой язык, вообще в программировании сложность на 90% не в языке - это просто система записи, а в изучении приемов программирования (алгоритмов). И вообще ты никогда не будешь знать достаточно, если не будешь знать больше чем достаточно :)
Похожие вопросы