Найти сумму чисел, делящихся на 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();
    }

Объяснение кода листинга программы

  1. Объединение всех необходимых заголовочных файлов
  2. Объявление переменных: q, t, i, low, sum, f, m[20]
  3. Очистка экрана с помощью функции clrscr()
  4. Инициализация переменных q и t значением 0
  5. Ввод количества элементов в массиве с помощью функции scanf()
  6. Проверка на корректность введенного количества элементов (больше 0 и меньше 20)
  7. Ввод элементов массива с помощью функции scanf()
  8. Проверка каждого элемента массива на условие делимости на 3 или 7 с помощью условного оператора if
  9. Если условие выполняется, то текущий элемент добавляется к сумме, а его индекс сохраняется в переменной low
  10. Если сумма не равна нулю, то выводится наименьший элемент, делится на 3 или 7, и его номер
  11. Если сумма равна нулю, то выводится сообщение о том, что в массиве нет чисел, которые делятся на 3 или 7
  12. Завершение работы программы с помощью функции getch()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы