Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- За еден природен број а велиме дека е порамнување на друг природен број b ако и само ако цифрите еднакви на 9 во бројот b се заменети со цифрата 7 во бројот а.
- Пример. Бројот 734775 е порамнување на бројот 934795.
- Од стандарден влез се внесуваат непознат број на цели броеви (не повеќе од 100), се додека не се внесе нешто што не може да се интерпретира како цел број.
- Ваша задача е да ги отпечатите најмалите 5 од порамнувањата на сите внесени броеви, по редослед од најмалиот кон најголемиот.
- Забелешка: Доколку се внесат помалку од 5 броеви, тогаш печатите толку броеви колку што се соодветно внесени.
- Наоѓањето на порамнувањето на даден број треба да се реализира во посебна рекурзивна функција poramnet(int a).
- Пример.
- За броевите: 9592, 69403, 100007, 6, 987, 6977, 33439,
- треба да се најдат нивните порамнувања ( тоа се: 7572, 67403, 100007, 6, 787, 6777 и 33437, соодветно),
- и да се отпечатат најмалите 5 од нив по овој редослед: 6 787 6777 7572 33437.
- ЗАБРАНЕТО е користење на глобални променливи.
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- int poramnet(int a){
- int cifra;
- if (a==0){
- return 0;
- }else {
- cifra = a%10;
- if (cifra == 9){
- cifra = 7;
- return cifra + 10 * poramnet(a/10);
- }else {
- return cifra + 10 * poramnet(a/10);
- }
- }
- }
- int main() {
- int n,brojac=0;
- int a[100],prvi[100];
- while (scanf("%d",&n)){
- a[brojac]=poramnet(n);
- brojac++;
- }
- for (int i = 0; i < brojac; ++i) {
- for (int j = 1+i; j <brojac ; ++j) {
- if(a[j]<a[i]) {
- int temp = a[j];
- a[j]= a[i];
- a[i]= temp;
- }
- }
- }for (int i = 0; i < 5; ++i) {
- printf("%d ",a[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment