Programmas uzdevums: Tiek ievadīts naturāls skaitlis, programma atrod vai skaitlī ir cipari, kuri atkārtojas, ja tā ir, tad saskaita tos un izvada.
Piemērs: 23334155; Izvada - 3 (x3), 5(x2).
Esmu krietni apjucis kodā, varbūt kāds var pateikt vai esmu uz pareizā ceļa un parādīt pareizo virzienu, jo man vairs galva itin nemaz nestrādā.
#include <iostream>
using namespace std;
int main()
{
int stop;
do{
int n;
int *myArray;
int count = 1;
cout << "Input number: " << endl;
cin >> n;
double x = n;
x = x / 10;
// Finds the amount of digits in number[inputted]
while(x > 1)
{
x = x/10;
count++;
}
myArray = new int [count];
// Puts every digit into an array
for (int i = 0; i < count; i++)
{
myArray[i] = n%10;
n = n / 10;
}
int countRepDigits = 0; // Repeated digits*
// Counts repeated digits ??
for (int j = 0; j < count; j++)
for (int h = j + 1; h < count; h++)
{
if (myArray[j] == myArray[h])
{
++countRepDigits;
cout << "Digit that repeats is: " << myArray[j] << " and their amount is: " << countRepDigits << endl;
}
}
cout << "To continue this program, press - (1); otherwise - (0)" << endl;
cin >> stop;
delete[] myArray;
}while (stop == 1);
return 0;
}
Mārtiņš miniblogs
- 0
Mārtiņš 31.10.2015. 14:59
- -1
Hidden driver 31.10.2015. 15:18 #
Tutoriāls kā to izdarīt ne kā cirvis.
Number to array ->
Sort pēc ascii ->
Count array, if 1!=1 then print count, next number. - +1
int repeat = 0;
for(int i = 0; i <= 9; i++) {
for(int j = 0; j < count; j++) {
if(myArray[j] == i) {
repeat++;
}
}
if(repeat > 1) {
cout << "Digit that repeats is: " << i << " and their amount is: " << repeat << endl;
}
repeat = 0;
}Tagad tikai sataisi, lai pareizi saliek skaitļus arrayā.
Ielogojies vai izveido profilu, lai komentētu!