ЕСЛИ КТО ЕЩЕ НЕ ВИДЕЛ! ВОТ С4 РЕАЛЬНОЕ, НЕ ИЗ ДЕМО! РЕШЕННОЕ! Я С4 РЕШИЛ!
Задание типо такое: на вход подаются цифры в виде 123334. точка означает окончание, вывести цифры в порядке количества их повторения, а если одинаково повторяются, то по старшинству)
тоесть: 11122234.
будет: 2143
ВОТ КОД:
#include <stdio.h>
int main () {
char c;
int m[100];
int i=0;
int k=0;
int j=0;
int y=0;
int n=0;
int max=0;
int nomer=0;
while (c!='.') {
/*printf ("VHOD\n");*/
c=getchar ();
if ((c==' ') || (c=='\n')) {
c=getchar();
}
if (c=='.') {
break;
}
m[i]=c-48;
i++;
}
k=i;
while (1) {
for (i=0; i<k; i++) {
if (m[i]!=-1) {
for (j=0; j<k; j++) {
if ((m[i]==m[j]) && (i!=j) && (m[j]!=-1)) {
y++;
}
}
if ((y>n) || ((y==n) && (m[i]>max))) {
n=y;
max=m[i];
nomer=i;
}
y=0;
}
}
if (n==0) {
for (i=0; i<k; i++) {
if (m[i]!=-1) {
printf ("%d", m[i]);
m[i]=-1;
y=1;
break;
}
}
if (y!=1) {
getchar ();
getchar ();
return 0;
}
n=0;
y=0;
max=0;
nomer=0;
}
else {
printf ("%d", m[nomer]);
for (i=0; i<k; i++) {
if (max==m[i]) {
m[i]=-1;
}
}
y=0;
for (i=0; i<k; i++) {
if (m[i]!=-1) {
y=1;
}
}
if (y==0) {
break;
}
n=0;
y=0;
max=0;
nomer=0;
}
}
getchar ();
getchar ();
return 0;
}