Две проблемы программирования на C для структурированных данных

  1. Первая проблема:

Create a function called triangles that prints an upside down right triangle (composed of *'s) that starts out n stars wide and decreases down to one star then goes back up to n stars. DO NOT MODIFY below by the Instructor. Example input/output:

./p3 4
 ****
 ***
 **
 *
 **
 ***
 ****
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    if (argc < 2) {
        printf("usage: h4 <number>\n");
        return 1;
    }
    triangles(atoi(argv[1]));

    return 0;
}
  1. Вторая проблема:

Do not modify main below. Write the function pyramid that takes an integer and outputs a pyramid constructed of asterisks(*) that is that of rows high.

input/output:
./p4 4
   *
  ***
 *****
*******
#include <stdio.h>
#include <stdlib.h>

void pyramid (int a) {
/* ???? */
}

int row = argc;

int i, j, row;
for(i=row; i>=1; --i) {
    for(j=1; j<=i; ++j) {
        printf("%d ",j);
    }
    printf("\n");
}
return 0;
}

int main (int argc, char *argv[]) //Do not modify
{
    if (argc < 2) //Do not modify
    {
        printf ("usage: h4 <number>\n");//Do not modify
        return 1;//Do not modify
    }
    pyramid(atoi (argv[1]));//Do not modify

    return 0;
}

Я знаю основы программирования на Javascript и C, но я не уверен, как начать работу с функциями из triangles(atoi(argv[1])); или pyramid(atoi (argv[1]));. Никто не говорил мне об этом раньше ?? Помощь ценится больше, поэтому я могу изучить, как она выглядит. Спасибо.

Расскажите или покажите, что вы пробовали

Gaurav Singh 12.10.2018 07:29

В теге C на SO есть много вопросов о вариантах печати на тему пирамид. Вы должны посмотреть на них и почерпнуть идеи. Кроме того, как правило, лучше задать два отдельных вопроса, на каждый из которых может быть дан собственный набор ответов, чем объединять их в один.

Jonathan Leffler 12.10.2018 07:46

Поскольку вы новичок в SO, вам нужно знать следующее: Никогда не вносите существенных изменений в свой вопрос после того, как был опубликован ответ. Если кто-то прочитает ваш вопрос в том виде, в каком он есть сейчас, а затем прочитает мой ответ, они подумают, что ответ неверен, потому что они не видят ваш исходный вопрос. Открою вопрос.

4386427 12.10.2018 08:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
64
1

Ответы 1

Я не хочу делать вашу домашнюю работу, но вот намекать для вашей первой проблемы.

#include <stdio.h>
#include <stdlib.h>

void triangles(int n)
{
  int t;

  // Print first half
  t = n;
  while(t)
    {
      for(int i=0; i<t; ++i) printf("*");
      printf("\n");
      --t;
    }

  // Print second half
  t = 2;
  // ... add code here
}

int main(int argc, char *argv[])
{
  if (argc < 2)
    {
      printf("usage: h4 <number>\n");
      return 1;
    }
  triangles(atoi(argv[1]));

  return 0;
 }

./p3 4 даст:

****
***
**
*

Как видите, на нем напечатана первая половина треугольника. Используя тот же принцип, теперь вы можете добавить код для печати второй половины.

{для (int i = 0; i <t; --i) printf ("*"); printf ("\ п"); ++ t; }

StartProgrammer 12.10.2018 08:02

@StartProgrammer не совсем, но близко ... попробуйте и посмотрите, что он делает ... тогда вы скоро увидите проблему и сделаете домашнее задание

4386427 12.10.2018 08:06

Разобрался.

StartProgrammer 12.10.2018 08:28

Другие вопросы по теме