Задача. Перевод с "си++" на "си" - C (СИ)

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

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

Есть задача: Ввести с клавиатуры целое положительное число N. Найти все натуральные числа, не превышающие заданного значения N, десятичная запись которых является возрастающей последовательностью цифр(123,258 и т.д.). Найденные числа вывести на экран монитора. Вопрос вот в чем: сначала я написал программу на си++ и все работало отлично. Но потом узнал, что задачу надо было написать на си и перевел ее. Так вот, на с++ в консоли все выводится так как надо: (смотреть вложенный файл с++.png) А на си все это выглядит неупорядоченно: (смотреть си.png) Как сделать так, чтоб на си выглядело так же как и на си++? И на си, если вбивать число больше 350 например, вывод начинается не сначала, как будто консоль ограничена в символах. вот сообственно код на си++
#include <iostream>     //подключение библиотек
#include <conio.h>
#include <stdlib.h>
using namespace std;
int main()                //начало программы
{
    int N,i,k,a,b;           //объявление переменных
    bool f;
    cout<<"Enter N  ";       //вывод сообщения на экран
    cin>>N;                  //ввод (считывание) переменной
    if (N<12)                //условие: если ...
    cout<<"Net takix cifr";   //то выводится сообщение на экран
    else                         //иначе
    {
    cout<<"Reshenie"<<"\n";   //выводится сообщение на экран
        for (i=12;i<N-1;i++)      //цикл
    {
            f=true;                //присваиваем переменной f значение true
            k=i;
            a=k%10;                //a - остаток от деления
         k=k/10;                //k - челая часть от деления
            while (k>0 && f)       //цикл - пока k>0 и f=true
            {
                b=k%10;              //b - остаток от деления
            if (b>=a)  f=false;  //условие
            else                 //иначе
            {
                a=b;
                    k=k/10;
            }
            }
            if (f) cout<<i<<"\n";    //если f=true выводим число на экран
        }
   }
    getch();                       //задержка экрана
и код на си:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
 
int main()
{
    int N,i,k,a,b;         //объявление переменных
    bool f;
    printf("Enter N  ");       //вывод сообщения на экран
    scanf("%d",&N);                 //ввод (считывание) переменной
    if (N<12)                //условие: если ...
    printf("Net takix cifr");   //то выводится сообщение на экран
    else                         //иначе
    {
    printf("Reshenie ");   //выводится сообщение на экран
    printf("\n");
        for (i=12;i<N-1;i++)      //цикл
    {
            f=true;                //присваиваем переменной f значение true
            k=i;
            a=k%10;                //a - остаток от деления
         k=k/10;                //k - челая часть от деления
            while (k>0 && f)       //цикл - пока k>0 и f=true
            {
                b=k%10;              //b - остаток от деления
            if (b>=a)  f=false;  //условие
            else                 //иначе
            {
                a=b;
                    k=k/10;
            }
            }
            if (f) printf("%d",i);    //если f=true выводим число на экран
            printf("\n");
        }
   }
    getch();                       //задержка экрана
}

Решение задачи: «Задача. Перевод с "си++" на "си"»

textual
Листинг программы
if (f) printf("%d\n",i);

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

  1. Переменная f используется в условии if.
  2. Если f равно true, то выполняется блок кода внутри if.
  3. Внутри блока кода происходит вызов функции printf.
  4. Функция printf принимает два аргумента: строку и целое число.
  5. В данном случае, в качестве первого аргумента используется строка %d\n, которая указывает на формат вывода.
  6. Второй аргумент - это целое число i.
  7. Выполняется вывод на экран строки и числа.
  8. Если f равно false, то блок кода внутри if не выполняется.
  9. Никакие другие действия в коде не выполняются.

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


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

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

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