Нет, не через логические операции, не через \n в новой строке не получается написать этот код без пробела в конце. Мой сайт шараги не принимает такой ответ. (нет, некоторые сдали и сказали что можно в конце без пробела написать.) Просто помогите. Напишите ответ. Я не могу отвечать на комментарии закончился лимит
do {
if (n % b == 0 || n==0)
{
printf("%d", b);
}
b++;
} while (b <= n);
printf("\n");
do{
if (n % i == 0|| n==0)
{
printf("%d", i);
}
i--;
} while (i>0);
printf("\n");
}
C/C++
Нужно не выводить пробел в конце строки. язык си (Андрей, даже ваш вариант сайт считает не рабочим... )
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main() {
int n, m = 0, i = 1;
scanf_s("%i", &n);
do {
if (0 == n % i) printf("%i%c", i, 1 + m == n ? '\n' : ' ');
m < n ? ++i : --i;
} while (++m <= (n << 1));
putchar('\b');
system("pause > nul");
}
#include <stdio.h>
using namespace std;
int main() {
int n, m = 0, i = 1;
scanf_s("%i", &n);
do {
if (0 == n % i) printf("%i%c", i, 1 + m == n ? '\n' : ' ');
m < n ? ++i : --i;
} while (++m <= (n << 1));
putchar('\b');
system("pause > nul");
}
У меня внизу вообще не было никаких пробелов, а делители выводились через запятую. Но так как надо их все выводить именно через пробел, а символ перевода строки тоже почему-то считается пробелом, то можно тогда самый последний делитель (а в обратном порядке это будет единица, не зависящая ни от какого цикла !) так и оставить как есть, то есть безо всяких там переводов на новую строку или на новую страницу (а то ведь и этот символ тоже может посчитаться за пробел !) и безо всяких дурацких бесконечных циклов, как было у меня. Или что ещё подразумевается под концом - конец первой строки с выводом делителей в порядке возрастания? Ну дак точку ж тогда можно поставить! Да и в самом конце тоже. Или и это не подходит ?
напиши хоть ссылку на это задание, и скриншот задания
тебе написали варианты решения.
Ты говоришь что "шарашкин сайт не принимает", причем в вопросе снова второй раз постишь свой код, который точно нерабочий сам по себе, без вскяких "шарашкиных сайтов". Почему бы тебе не быть более точным - не "шарашкин сайт", а точные текст задания от начала до конца и ссылка на него и скриншот вопроса. Не "не принимает", а точно что выводится на сайте, какая ошибка. Ты просишь ответ, но не приводишь точного вопроса, не пишешь, почему ответ тех, кто уже тебе попытался помочь не подошел.
--
https://rextester.com/WXPDM69959
держи
тебе написали варианты решения.
Ты говоришь что "шарашкин сайт не принимает", причем в вопросе снова второй раз постишь свой код, который точно нерабочий сам по себе, без вскяких "шарашкиных сайтов". Почему бы тебе не быть более точным - не "шарашкин сайт", а точные текст задания от начала до конца и ссылка на него и скриншот вопроса. Не "не принимает", а точно что выводится на сайте, какая ошибка. Ты просишь ответ, но не приводишь точного вопроса, не пишешь, почему ответ тех, кто уже тебе попытался помочь не подошел.
--
https://rextester.com/WXPDM69959
держи
Любопытно знать, что мешает уменьшить число итераций на 1, вывести первое значение отдельно, а дальше — в цикле — пару: разделитель плюс следующее значение???
Калыйбек Тавалдыев
Данияр, поскольку мне неизвестно, какими темами Вы ограничены, то я не предлагаю Вам чего-то сверхгениального, а немного поправил Ваш код. Пожалуйста, проверьте, правильно ли он работает.

Калыйбек Тавалдыев
#include
int main()
{
int n, i=2;
scanf_s("%d", &n);
printf("1");// число 1 выводится всегда
while (i <= n)
{
if (n % i == 0)
{
printf(" %d", i);
}
i++;// при выходе из цикла i == n + 1
}// однако, если входа в цикл не было, то i == 2
printf("\n");
while (i>2)// если в первый цикл входа не было, то и во второй цикл входа не будет!
{
i--;
if (n % i == 0 )
{
printf("%d ", i);
}
}
printf("1");// число 1 выводится всегда
return 0;
}
int main()
{
int n, i=2;
scanf_s("%d", &n);
printf("1");// число 1 выводится всегда
while (i <= n)
{
if (n % i == 0)
{
printf(" %d", i);
}
i++;// при выходе из цикла i == n + 1
}// однако, если входа в цикл не было, то i == 2
printf("\n");
while (i>2)// если в первый цикл входа не было, то и во второй цикл входа не будет!
{
i--;
if (n % i == 0 )
{
printf("%d ", i);
}
}
printf("1");// число 1 выводится всегда
return 0;
}
Калыйбек Тавалдыев
#include <stdio.h>
int main()
{
int n, i=2;
scanf_s("%d", &n);
printf("1");// число 1 выводится всегда
while (i <= n)
{
if (n % i == 0)
{
printf(" %d", i);
}
i++;// при выходе из цикла i == n + 1
}// однако, если входа в цикл не было, то i == 2
printf("\n");
while (i>2)// если в первый цикл входа не было, то и во второй цикл входа не будет!
{
i--;
if (n % i == 0 )
{
printf("%d ", i);
}
}
printf("1");// число 1 выводится всегда
return 0;
}
int main()
{
int n, i=2;
scanf_s("%d", &n);
printf("1");// число 1 выводится всегда
while (i <= n)
{
if (n % i == 0)
{
printf(" %d", i);
}
i++;// при выходе из цикла i == n + 1
}// однако, если входа в цикл не было, то i == 2
printf("\n");
while (i>2)// если в первый цикл входа не было, то и во второй цикл входа не будет!
{
i--;
if (n % i == 0 )
{
printf("%d ", i);
}
}
printf("1");// число 1 выводится всегда
return 0;
}
Похожие вопросы
- Решить задачу на языке СИ
- Написать код на языке си
- Написать программу на языке Си
- Помогите с решением задачи на языке СИ
- Задача на строки в Си
- Си!!! БЕЗ УКАЗАТЕЛЕЙ, ЯЗЫК СИ
- Упорядочить элементы массива по возрастанию на языке Си
- Создать файл ABONENT.dat, содержащий записи следующей структуры: ФИО абонента; его номер телефона. на языке си++
- Помогите с задачей на языке СИ
- Написать код на языке Си
вот решение. без пробелов в конце. с \n в середине. все как в тексте задания.
Отдельное спасибо за оскорбления, Динияр. Уверен, тебе еще много кто захочет помочь