7 / 7 / 0
Регистрация: 27.09.2011
Сообщений: 144
1

Вывести сумму и произведение чисел.

01.05.2012, 18:06. Показов 1756. Ответов 11
Метки нет (Все метки)

Здравствуйте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<conio.h>
main()
{    
     int a, b, x, y, sum, pr, i, m, h;
     printf ("vedite 2 chisla ot a do b\n");
     scanf ("%d%d", x, y);
     if ((x%2==m)and (y%2==h)) {
     for (i=a; i<=b; i++)
     {
         sum==x+y;
         pr==x*y;
         printf ("%4d %4d\n" , sum, pr);
     }
     } 
     else {
          if ((x%2==0) and (y%2==0));
          printf ("Error! Vedite nechetnie chisla");
          }    
     getch();    
      
}
Нужно вывести сумму и произведение нечетных чисел. Помогите найти ошибку. Программа не работает.



Добавлено через 31 минуту
Короче, я что-то намудрил и не знаю как выплыть.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2012, 18:06
Ответы с готовыми решениями:

Ввести целое число и набор из вещественных чисел, вывести сумму и произведение чисел из набора
ввести целое число N (больше 0) и набор из N вещественных чисел вывести сумму и произведение чисел...

Вывести сумму и произведение четных чисел из данного набора (не через массив)
Дано целое число N и набор из N вещественных чисел. Вы-вести сумму и произведение четных чисел...

Сгенерировать случайное трехзначное число и вывести на экран их сумму и произведение этих чисел
Сгенерировать случайное трехзначное число и вывести на экран их сумму и произведение этих чисел.

Найти сумму и произведение полученных чисел. Вывести на чистый экран строку S, ее длину, сумму и произведение
Запросить у пользователя строку S, состоящую из цифр. Преобразовать каждый символ – цифру в число....

11
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
01.05.2012, 18:37 2
Сильно намудрил. Сразу бросается в глаза:
1. Не main(), а
C++
1
int main()
2. scanf() не принимает сами переменные, т.е. правильно будет:
C++
1
scanf ("%d%d", &x, &y);
3. В части:
C++
1
2
     if ((x%2==m)and (y%2==h)) {
     for (i=a; i<=b; i++)
переменные a, b, m и h не инициализированы
4. = - присваивание, а == - сравнение (равенство), так что в цикле:
C++
1
2
sum=x+y;
pr=x*y;
Это сначала исправьте.
1
7 / 7 / 0
Регистрация: 27.09.2011
Сообщений: 144
01.05.2012, 18:50  [ТС] 3
Конечный результат и всё работает, избавился от цикла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<conio.h>
main()
{    
     int a=1, b=20, x, y, sum, pr, i, m, h;
     printf ("vedite 2 chisla ot a do b\n");
     scanf ("%d%d", &x, &y);
     if ((x%2==0) or (y%2==0)) {
          printf ("Error! Vedite nechetnie chisla");
          }
       else  {
 
         sum=x+y;
         pr=x*y;
         printf ("%4d %4d\n" , sum, pr);
     } 
     getch();    
}
0
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
01.05.2012, 18:50 4
Цитата Сообщение от Walter Bishop Посмотреть сообщение
Объясните, пож-та, значение
Нужно сначала присвоить им значение. При объявлении переменной, ей присваивается (насколько помню) рандомное (случайное значение). То есть перед циклом for (i=a; i<=b; i++) переменным a и b нужно задать значение. Например:
C++
1
2
3
4
5
6
a=0;
b=1;
for (i=a; i<=b; i++)
{
   //Тело цикла
}
Тело цикла выполнится 1 раз
0
176 / 144 / 70
Регистрация: 01.05.2012
Сообщений: 414
01.05.2012, 18:53 5
Ну если надо найти сумму и произведение просто двух нечетных то тогда так!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<conio.h>
int main()
{
     int x, y, sum, pr;
 
     printf ("vedite 2 nechetnix chisla \n");
     scanf ("%d%d", &x, &y);
     if ((x%2==1)and (y%2==1)) {
         sum=x+y;
         pr=x*y;
         printf ("%4d %4d\n" , sum, pr);
     }
     else {
          if ((x%2==0) or (y%2==0));
          printf ("Error! Vedite nechetnie chisla");
          }
}
1
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
01.05.2012, 18:54 6
Цитата Сообщение от Walter Bishop Посмотреть сообщение
Конечный результат и всё работает, избавился от цикла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<conio.h>
main()
{    
     int a=1, b=20, x, y, sum, pr, i, m, h;
     printf ("vedite 2 chisla ot a do b\n");
     scanf ("%d%d", &x, &y);
     if ((x%2==0) or (y%2==0)) {
          printf ("Error! Vedite nechetnie chisla");
          }
       else  {
 
         sum=x+y;
         pr=x*y;
         printf ("%4d %4d\n" , sum, pr);
     } 
     getch();    
}
Отлично. Только переменные a, b, i, m и n получаются лишними.

P.S. И всё-таки int main()
1
7 / 7 / 0
Регистрация: 27.09.2011
Сообщений: 144
01.05.2012, 18:58  [ТС] 7
нет не один, а два.

Добавлено через 3 минуты
поменял у переменной a=1, то получается и b=1 вот только тогда цикл выполняется один раз.
0
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
01.05.2012, 18:59 8
Цитата Сообщение от Walter Bishop Посмотреть сообщение
нет не один, а два.
Пардон, я у себя <= на < заменил, а цикл с вашего кода скопировал.

_script_, только
C++
1
if ((x%2==0) or (y%2==0));
уберите
1
3 / 3 / 0
Регистрация: 01.05.2012
Сообщений: 18
01.05.2012, 19:01 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<conio.h>
main()
{    
     int x, y, sum, pr, i;
     printf ("vedite 2 chisla ot a do b\n");
     scanf ("%d%d", &x, &y);
     sum = 0;
     pr = 1;
     for (i=x; i<=y; i++)    
     {
         if (i%2!=0) {
             sum+=i;
             pr*=i;
         }
     } 
     printf ("%4d  %4d\n" , sum, pr);
     getch();    
      
}
Может так?
1
7 / 7 / 0
Регистрация: 27.09.2011
Сообщений: 144
01.05.2012, 19:04  [ТС] 10
Ну спасибо Вам ребята. Теперь бы с этой задачкой управиться: Проверка на палиндром
0
3 / 3 / 0
Регистрация: 01.05.2012
Сообщений: 18
01.05.2012, 19:06 11
там поправил условие проверки на чётность if (i%2!=0)
0
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
01.05.2012, 19:16 12
osrcproject, так сложнее в понимании и требует больших ресурсов (хотя и незначительно для данной задачи, всё рано лучше не делать так)

Теперь бы с этой задачкой управиться: Проверка на палиндром
Перевод на язык Си примера пользователя Drinker:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int main()
{
    int a; //Исходное число
    scanf("%d", &a); //Вводим его с клавиатуры
    int temp = a; //Объявляем временную переменную со значением исходного числа
 
    int b = 0; //Число перевернутое
 
    while (temp != 0)
    {
          b = b * 10 + temp % 10; //Переворачиваем число по цифрам
          temp /= 10; //Отбрасываем последнюю цифру
    }
 
    if (a == b)
          printf("Палиндром!");
    else
          printf("Fail :(");
    system ("pause");
    
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2012, 19:16
Помогаю со студенческими работами здесь

Дан массив целых чисел N. Вывести сумму и произведение чисел данного массива, которое меньше K
Помогите пожалуйста

Вывести сумму и произведение чисел из данного набора.
Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного...

Вывести сумму и произведение чисел из данного набора
Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного...

Вывести сумму и произведение чисел из данного набора
Дан массив из N действительных чисел. Вывести сумму и произведение чисел из данного набора.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru