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

Определить, в записи какого из двух четырехзначных чисел больше нулей - C++

Восстановить пароль Регистрация
 
SR
0 / 0 / 0
Регистрация: 28.03.2012
Сообщений: 6
20.06.2012, 20:33     Определить, в записи какого из двух четырехзначных чисел больше нулей #1
Не могу понять в чём проблема, вроде правильно написал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{int a[10],i,n;
cin>>n;
for (i=1;i<=n;i++)
cin>>a[i]; 
for (i=1;i<=n;i++)
{
if (i%2==0)
cout<<a[i]<<endl;
}
getchar();
getchar();
}
Составить программу, определяющую в записи какого из двух четырехзначных чисел больше нулей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 20:33     Определить, в записи какого из двух четырехзначных чисел больше нулей
Посмотрите здесь:

Нахождение всех четырехзначных натуральных чисел, в записи которых нет одинаковых цифр». C++
C++ Определить какое из двух чисел больше, используя шаблоны функции
Определить, в каком из двух целых чисел больше цифр C++
C++ Определить модуль какого из двух чисел встречается в числовом массиве чаще
C++ Определить в каком из двух чисел больше цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Doctor_
 Аватар для Doctor_
232 / 232 / 69
Регистрация: 03.02.2011
Сообщений: 1,405
20.06.2012, 21:09     Определить, в записи какого из двух четырехзначных чисел больше нулей #2
Цитата Сообщение от SR Посмотреть сообщение
Не могу понять в чём проблема, вроде правильно написал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{int a[10],i,n;
cin>>n;
for (i=1;i<=n;i++)
cin>>a[i]; 
for (i=1;i<=n;i++)
{
if (i%2==0)
cout<<a[i]<<endl;
}
getchar();
getchar();
}
Составить программу, определяющую в записи какого из двух четырехзначных чисел больше нулей.
я конечно может и ошибаюсь, но мне кажется что if (i%2==0) не правильно, тут идет какое-то деление индекса, зачем делить индекс? Если я правильно понял, то пользователь должен вести чисто состоящие из 4 цифр, например, 1234.. Вести два четырехзначных числа и вывести то в котором больше нулей.. У вас даже нельзя ввести 2 по 4.. Думаю может попробовать через char сделать.. и сделать счетчик на 0.. и потом вывести у кого больше.. Может я и ошибаюсь, так как в программировании разбираюсь не очень.

Добавлено через 12 минут
Что-то в духе этого, только я не могу понять почему первый счетчик глючит.. Всегда дает на один ноль меньше.
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main() {
    char a[4];
    char b[4];
    int i,j, counta=0, countb=0;
    cin >> a;
    cin >> b;
    for(i=0; i<4; i++) {
             if(a[i]=='0') {
                         counta++;
                         }
             }
    for(j=0; j<4; j++) {
             if(b[j]=='0') {
                         countb++;
                         }
             }
    if(counta>countb) {
                      cout << "V pervom chisle bolshe nulej: " << counta << endl;
                      }
                      else {
                           cout << "V vtorom chisle bolshe nulej: " << countb << endl;
                           }                         
    getche();
}
Nedd
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 5
20.06.2012, 21:51     Определить, в записи какого из двух четырехзначных чисел больше нулей #3
Кол-во нулей в двоичной записи или десятичной?
Приведенный код при благоприятном вводе(n=0..9) считывает n чисел и выводит каждое второе.
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
20.06.2012, 22:05     Определить, в записи какого из двух четырехзначных чисел больше нулей #4
Цитата Сообщение от SR Посмотреть сообщение
в записи какого из двух четырехзначных чисел больше нулей.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int n;
int n_zero = 0;   // количество нулей в числе
 
cout << "введите целое число: ";
cin >> n;
 
while (n > 0)
{
   if (n % 10 == 0)
      n_zero++;
 
   n = n / 10;
}
 
cout << "Количество нулей в этом числе равно " << n_zero;
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
21.06.2012, 13:40     Определить, в записи какого из двух четырехзначных чисел больше нулей #5
Для VS:
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
#include <iostream>
#include <conio.h>
#include <clocale>
 
int countZerro(int n)
{
    int n_zero = 0;   // количество нулей в числе
    while (n > 0)
    {
        if (n % 10 == 0)
            n_zero++; 
        n = n / 10;
    }
    return n_zero;
}  
 
int main()
{
    setlocale(LC_ALL, "russian");
    int a, b; 
    std::cout << "введите целые числа: ";
    std::cin >> a>> b;
    int a0 = countZerro(a), b0 = countZerro(b);
    if (a0 == b0) std::cout<< "Количество 0 равно";
    else std::cout<< (a0 > b0 ? "В первом" : "Во втором")<< " числе 0 больше";
    return 0;
}
http://liveworkspace.org/code/15e5ec...22fae8f18a2e27
Взял алгоритм g-h, надеюсь он не обидется)
Yandex
Объявления
21.06.2012, 13:40     Определить, в записи какого из двух четырехзначных чисел больше нулей
Ответ Создать тему
Опции темы

Текущее время: 01:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru