![]() |
Помогите решить простую задачу на С++
Народ помогите решить задачу на С++
задача: принимается число, и печатает пирамиду начиная с нуля и дальше например если n=5 то прога напечатает такую пирамиду: 1 как такое зделать?121 12321 1234321 123454321 |
N - дано. Например 5.
int i; for (int Line = 1; Line <= N; Line++) { int spaces = N - Line; for (i = 0; i < spaces; i++) printf(" "); for( i = 1; i <= Line; i++ ) printf("%d", i); for(i -= 2; i > 0; i-- ) printf("%d", i); for (i = 0; i < spaces; i++) printf(" "); printf("\n"); } Код можно конечно оптимизировать и написать красивее, но я сделал как проще. Тебе ведь именно это нужно? P.S. Не забудь сделать #include <stdlib.h> |
Вообще-то stdio.h
|
Цитата:
|
Цитата:
|
Цитата:
printf("%d", i); printf(" "); printf("\n"); эти функции в С++ выглядят как cout<<" "; |
inkognito, ты не прав. В С++ printf так же работает, да и cout в Си вроде тоже долмна быть. Основное отличие С++ от Си это классы (ООП).
|
V@nya, ок, незнал что это тоже работает в С++.
Цитата:
|
inkognito, а в Си чё, переменные не везде можно объявлять, только в начале? Это плохо. Да и кто на чистом Си пишет, как правило учат сразу С++ на компиляторе Borland C++ 3.0, я на чистом си не разу не писал, да и копилятор сейчас не найти.
|
Цитата:
Цитата:
я впринцепи Си незнаю я сразу с С++ начинал |
inkognito
Цитата:
|
Всем читать
Бьерн Страуструп "Язык программирования С++" Чтобы понять разницу между С++ и С. Стандарт С99 позволяет в языке Си объявлять переменные в любом месте. :) |
если я не ошибаюсь то cin и cout в С нету... (тока не бейте ногами если не прав :) )
|
не ошибаешься :)
Нету. cin, cout - работа с потоками (это классы) :) |
Кхм, друзья. По моему начался Offtop.
Если хотите, создайте соотвествующий топик и развлекайтесь там. Модерам ИМХО тема может быть закрыта. |
Красивее это написать конечно рекурсией
|
Треугольник Паскаля? V@nya, неплохо=)
|
Плиз кто нибудь помогите написать прогу(( Я вообще в отчаянии ниче вообще не получается... Разработать программу, которая подводит итоги Олимпийских игр. Программа должна получить от пользователя количество золотых, серебряных и бронзовых медалей, завоеванное каждой командой-участницей (принять количество команд равное 5). Далее по количеству медалей каждого достоинства необходимо вычислить соответствующее число очков команды. Количество очков вычисляется по следующему правилу: за золотую медаль команда получит семь очков, за серебряную — шесть, за бронзовую — пять очков. После таких расчетов список команд нужно упорядочить в соответствии с набранным количеством очков с помощью алгоритма сортировки обменом и вывести в диалоге. Построить также столбчатую диаграмму набранных очков с подписью названия каждой команды.
Заранее спасибо... |
Рем, похоже, это уже Visual C++, раз мы о диалогах заговорили? Поточнее требования, пожалуйста.
В плане руководства к действию, вот примерно так это должно реализовываться на С++ без примесей Visual и иже с ним: - Определяем класс Team со свойствами m_Gold, m_Silver, m_Bronze типа integer, и свойством m_Name типа string. Само собой, определяем геттеры, сеттеры и конструктор(ы). Один из методов - getTeamScore() - возвращает следующее выражение: (7*m_Gold + 6*m_Silver + 5*m_Bronze)- Определяем класс ScoreSummarizer - главный класс программы. В нем определяем массив указателей на объекты типа Team размером в 5 штук (по кол-ву комманд). При инициализации запускаем метод этого класса getUserInput(), который заполнит массив коммандами. Алгоритм заполнения: - В классе ScoreSummarizer определяем метод displayData. Его задача - вывести на экран отсортированный список команд с очками, и нарисовать диаграмму столбцов. Для этого определяем три вспомогательных метода: * sortTeamScores - сортирующий имеющийся у нас массив методом обмена (для выяснения конкретного значения очков команды пользуемся методом getTeamScore из класса Team). Алгоритм приводить не буду, ибо Google - великий знаток алгоритмов сортинга. :contract:- Ну, и финал - в main() объявляем объект типа ScoreSummarizer. Если мы вызывали getUserInput в конструкторе этого класса, то можно смело вызывать displayData(). Если же конструктор этого класса default - то последовательно вызываем getUserInput(), а затем уже displayData(). Удачи! |
Спасибо Voland25, постараюсь сделать...
|
Часовой пояс GMT +4, время: 13:40. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.