Задача. Перевод с "си++" на "си" - 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);
Объяснение кода листинга программы
- Переменная
f
используется в условии if. - Если
f
равно true, то выполняется блок кода внутри if. - Внутри блока кода происходит вызов функции printf.
- Функция printf принимает два аргумента: строку и целое число.
- В данном случае, в качестве первого аргумента используется строка
%d\n
, которая указывает на формат вывода. - Второй аргумент - это целое число
i
. - Выполняется вывод на экран строки и числа.
- Если
f
равно false, то блок кода внутри if не выполняется. - Никакие другие действия в коде не выполняются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д