Получить n четырёхзначных чисел, в записи которых нет двух одинаковых цифр - C (СИ)

Узнай цену своей работы

Формулировка задачи:

условие задачи.. получить n четырёхзначных чисел, в записи которых нет двух одинаковых цифр. пробовал написать на с++ вот код:
#include <ctime>
#include <cstdlib>
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
int main(void){
    int x,m;
    int k,l,n,b,h,p,z,d,o; 
    scanf("%i",&k); 
    for(k=1; k<l; k++) {
        cout << "10 random numbers (1000..9999): " << endl;    
        srand(time(NULL));
        for(int i=0;i<k;i++) cout << rand() % 9999 + 1000 << " ";
        n=m-(m/10)*10;
        b=m-n;
        o=m-(m/100)*100;
        z=m-(0/10);
        h=m-(m/1000)*1000;
        p=m-(h/100);
        z=m-(m/10000);
        d=z/1000;
        m=x;
        if(b!=z, z!=p, z!=d, d!=p, d!=b, b!=p){ 
          printf("%i",x);
        }
         else{ 
          return 1;
         };
         return 0;
         };
         }
вроде бы работает.. помогите перевести с С++ на С. и если что то написано не правильно то подредактируйте.

Решение задачи: «Получить n четырёхзначных чисел, в записи которых нет двух одинаковых цифр»

textual
Листинг программы
#include <ctime.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
 
//using namespace std;
 
int main(void){
int x,m;
int k,l,n,b,h,p,z,d,o; 
scanf("%i",&k); 
for(k=1; k<l; k++) {
cout << "10 random numbers (1000..9999): " << endl; 
srand(time(NULL));
for(int i=0;i<k;i++){
cout << rand() % 9999 + 1000 << " ";
n=m-(m/10)*10;
b=m-n;
o=m-(m/100)*100;
z=m-(0/10);
h=m-(m/1000)*1000;
p=m-(h/100);
z=m-(m/10000);
d=z/1000;
m=x;
if(b!=z, z!=p, z!=d, d!=p, d!=b, b!=p){ 
printf("%i",x);
}
else{ 
return 1;
};
return 0;
};
}

Объяснение кода листинга программы

Код генерирует четырезначные числа с помощью функции rand() и оператора модуля (%). Затем он проверяет, содержатся ли в числе две одинаковые цифры. Если это так, число не выводится. В конце программы выводится сообщение с 10 сгенерированными числами. Список переменных и их значений:

  1. x - первое сгенерированное число
  2. m - текущее проверяемое число
  3. k - количество чисел для проверки
  4. l - максимальное значение для переменной k
  5. n - первая цифра числа m
  6. b - вторая цифра числа m
  7. o - третья цифра числа m
  8. z - четвертая цифра числа m
  9. h - первая цифра числа m в тысячах
  10. p - вторая цифра числа m в тысячах
  11. d - первая цифра числа m в десятках тысяч
  12. z - первая цифра числа m в миллионах
  13. m - исходное сгенерированное число
  14. i - счётчик для цикла генерации чисел
  15. a - не используется
  16. printf - функция вывода чисел
  17. rand() - генератор случайных чисел
  18. time(NULL) - функция получения текущего времени
  19. srand(time(NULL)) - инициализация генератора случайных чисел
  20. scanf(%i,&k) - ввод числа для переменной k

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы