Форум программистов, компьютерный форум CyberForum.ru

Проверьте пожалуйста, что не так? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Коды стрелочек на клавиатуре http://www.cyberforum.ru/cpp-beginners/thread1033473.html
Не могу понять почему на Esc(27) реагирует, а на стрелку(39) нет. Вот код. Может я что не так делаю? #include <iostream> #include <windows.h> #include <conio.h> using namespace std; HANDLE hConsole, hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); enum ConsoleColor {
C++ Задача на добавление строки в массив Вставить новую строку после всех строк, в которых нет ни одного четного эле* мента. Добавлено через 36 секунд Помогите, кому неслишком сложно. Все задачи могу делать на массивы, кроме вставления строк. http://www.cyberforum.ru/cpp-beginners/thread1033471.html
список C++
программа на С++ должна обеспечивать интерактивный режим просмотра элементов списка. Как это осуществит,кто знает?
C++ интерактивный доступ к элементам списка в С++
программа должна обеспечивать интерактивный режим просмотра элементов списка. Как это осуществит,кто знает?
C++ Описать функцию PoslSu(t), которая выводит на печать последнюю строку непустого текстового файла http://www.cyberforum.ru/cpp-beginners/thread1033447.html
Описать функцию PoslSu(t), которая выводит на печать последнюю строку непустого текстового файла t (t-файловая переменная). Каким образом можно реализовать, напишите пожалуйста или алгоритм, или код. Спасибо.
C++ Ошибка при удалении явно заданного указателя Помогите, пожалуйста, с этой проблемой. Уже 2 недели не могу сдать лабу "main.cpp" char* a=new char; char b=0; char* c=new char; unsigned int d=0; int n; cout<<"Сколько будете вводить данных?"<<endl; n=ic(); //проверка на целое ant* inform=new ant; подробнее

Показать сообщение отдельно
deepz
43 / 43 / 25
Регистрация: 04.10.2013
Сообщений: 199
08.12.2013, 19:04     Проверьте пожалуйста, что не так?
условие задачи: написать и протестировать функцию, которая находит сумму всех цифр введенного целого числа, если оно является простым и произведение цифр в обратном случае.


Так вот когда я делаю функцию, почему-то не правильно определяется число (простое оно или нет)

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h> 
#include <conio.h>
int fun(int n)
{int d=2, r, sum=0, pr=1;  // r - остаток от деления d-делитель
while (r!=0)
    {   
        r=n%d;
        if (r!=0)
        d++;
    }
        
                if (d == n)
                     {
                              printf("%d - Prostoe\n" ,n);
                        {
                         while (n)
                            {
                                sum=sum+n%10;
                                n=n/10;
                            }
                        }
                        printf("sum=%d", sum);
                    }
                else 
                     {
                        printf("%d - Ne prostoe\n" ,n);
                            {
                             while (n>0)
                                {
                                     pr*=n%10;
                                    n=n/10;
                                 }
                             }
    printf("pr=%d", pr);
 
                    }
 
}
int main()
{
int n;
puts("Bawe chislo");
scanf("%d", &n);
fun(n);
}
А если я делаю просто в main то все правильно работает. Почему так?
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h> 
#include <conio.h>
int main()
{
int d=2, n, r, sum=0, pr=1;  // r - остаток от деления d-делитель
puts("Bawe chislo");
scanf("%d", &n);
    while (r!=0)
    {   
        r=n%d;
        if (r!=0)
        d++;
    }
                if (d == n)
                     {
                              printf("%d - Prostoe\n" ,n);
                        {
                         while (n)
                            {
                                sum=sum+n%10;
                                n=n/10;
                            }
                        }
                        printf("sum=%d", sum);
                    }
                else 
                     {
                        printf("%d - Ne prostoe\n" ,n);
                            {
                             while (n>0)
                                {
                                     pr*=n%10;
                                    n=n/10;
                                 }
                             }
    printf("pr=%d", pr);
 
                    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru