Найти сумму чисел, делящихся на 3 или на 7 - C (СИ)
Формулировка задачи:
доброго времени суток,
Дана последовательность целых чисел {Aj} произвольной длины. Найти сумму чисел, делящихся на 3 или на 7, наименьшее из таких чисел, и номер этого числа в последовательности. - пишу на turbo c++ помогите новичку.
после того как нашел сумму не могу найти наименьшее значение,
думаю надо создать отдельный массив из чисел делимыз на 3 или на 7 но ниче не получаеца. вот че я настрочил
------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
int q,t,i,k,j,low,sum,f,m[20],m1[20];
clrscr();
q=0;
t=0;
k=0;
sum=0;
do
{
printf("Введите количество элементов в массиве (не больше 20)\n");
scanf("%d",&f);
if ((f>0) && (f<=20)) t=1;
else printf("Вы ввели неверное количество элементов \n");
}
while (t==0);
printf("Введите элементы массива:\n");
for (i=0;i<=f;i++)
scanf("%d",&m[i]);
for(i=0;i<=f;i++)
{ if ((m[i]%3 == 0) || (m[i]%7 == 0))
{ sum=sum+m[i];
k=k+1; }
for (j=0;j<=k;j++)
{ m1[j]=m[i];
low=m1[1];
if (m1[j]<low) low=m1[j]; }
}
for (i=0;i<=f;i++)
{ if (m[i]=low)
q=i;}
if (sum!=0) {
printf("Наименьший элемент в последовательности делимый на 3 или на 7 = %d\n",low);
printf("Номер минимального числа делимого на 3 или на 7: %d\n",q);
printf("Сумма чисел делимых на 3 или на 7 равна = %d",sum); }
else printf("В массиве нет чисел делимых на 3 или на 7 \n");
}Решение задачи: «Найти сумму чисел, делящихся на 3 или на 7»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
int q,t,i,low,sum,f,m[20];
clrscr();
q=0;
t=0;
sum=0;
do
{
printf("Введите количество элементов в массиве (не больше 20)\n");
scanf("%d",&f);
if ((f>0) && (f<20)) t=1;
else printf("Вы ввели неверное количество элементов \n");
}
while (t==0);
printf("Введите элементы массива:\n");
for (i=0;i<f;i++)
scanf("%d",&m[i]);
for(i=0;i<f;i++)
{ if ((m[i]%3 == 0) || (m[i]%7 == 0))
{ if(q==0) {q=1; low=i;} else { if(m[low]>m[i]) low=i;}
sum=sum+m[i];
}
}
if (sum!=0) {
printf("Наименьший элемент в последовательности делимый на 3 или на 7 = %d\n",m[low]);
printf("Номер минимального числа делимого на 3 или на 7: %d\n",low+1);
printf("Сумма чисел делимых на 3 или на 7 равна = %d",sum); }
else printf("В массиве нет чисел делимых на 3 или на 7 \n");
getch();
}
Объяснение кода листинга программы
- Объединение всех необходимых заголовочных файлов
- Объявление переменных: q, t, i, low, sum, f, m[20]
- Очистка экрана с помощью функции clrscr()
- Инициализация переменных q и t значением 0
- Ввод количества элементов в массиве с помощью функции scanf()
- Проверка на корректность введенного количества элементов (больше 0 и меньше 20)
- Ввод элементов массива с помощью функции scanf()
- Проверка каждого элемента массива на условие делимости на 3 или 7 с помощью условного оператора if
- Если условие выполняется, то текущий элемент добавляется к сумме, а его индекс сохраняется в переменной low
- Если сумма не равна нулю, то выводится наименьший элемент, делится на 3 или 7, и его номер
- Если сумма равна нулю, то выводится сообщение о том, что в массиве нет чисел, которые делятся на 3 или 7
- Завершение работы программы с помощью функции getch()