Muhammad Haris Salman Ответов: 2

Может ли кто-нибудь объяснить мне здесь, что этот модульный функтон делает здесь для сотого и тысячного значения ?


#include <iostream>
using namespace std ;
int main()
{
	cout<<"enter the number\n";
	int n;
	cin>>n;
	int k;
	k=n%10;
	int g;
	g=n%100;
	int m;
	m=n%1000;
	int h;
	h=n%10000;
	cout<<"The place value for The number"<<"\t"<<n<<"\t"<<"for one's="" is"<<"\t"<<k<<"\t"<<"for="" ten's="" is"<<"\t"<<g<<"\t"<<"for="" hundred's="" is"<<"\t"<<m<<"\t"<<"for="" thousand's="" is"<<"\t"<<h<<endl;
="" return="" 0="" ;
}


Что я уже пробовал:

я просто хочу понять, что этот модуль делает для значений сотого и тысячного мест ?

2 Ответов

Рейтинг:
14

CPallini

Как Грифф указал, что ты, вероятно, имел в виду

#include <iostream>
using namespace std ;
int main()
{
  cout<<"enter the number\n";
  int n, remain;
  cin>>n;
  remain = n;
  int k;
  k = remain % 10;
  int g;
  remain /= 10;
  g= remain % 10;
  int m;
  remain /= 10;
  m = remain % 10;
  int h;
  remain /=10;
  h= remain % 10;
  cout<<"The place value for The number"<<"\t"<<n<<"\t"<<"for one's="" is"<<"\t"<<k<<"\t"<<"for="" ten's="" is"<<"\t"<<g<<"\t"<<"for="" hundred's="" is"<<"\t"<<m<<"\t"<<"for="" thousand's="" is"<<"\t"<<h<<endl;

}


или, более компактно
#include <iostream>
#include <array>
using namespace std ;
int main()
{
  std::array<const string, 4> descriptions = { "one's", "ten's", "hundred's", "thousand's" };

  cout<<"enter the number\n";
  int n;
  cin >> n;
  cout << "the place value for the number \t" << n << "\t";
  for ( const auto & desc : descriptions )
  {
    cout << "for " << desc << " is \t" << (n%10) << "\t";
    n/=10;
  }
  cout << endl;
}


Рейтинг:
0

OriginalGriff

Он извлекает каждую цифру по очереди, сортирует ее: a % b возвращает остаток, когда a делится на b поэтому , когда b равно десяти, в результате получается наименьшая цифра числа:

101 % 10 == 1
102 % 10 == 2
103 % 10 == 3
...
109 % 10 == 9
110 % 10 == 0
111 % 10 == 1
Когда b равно 100, он делает то же самое, но возвращаемое значение находится между 0 и 99 включительно, и так далее.

Если вы ожидаете, что это будет извлекать каждую цифру, то вам нужно быть немного более сложным и использовать целочисленное деление каждый раз.