Необъявленные и неопределенные идентификаторы в параметре функции - PullRequest
0 голосов
/ 07 марта 2019
  #include <stdio.h>
  #include <iostream>
  using namespace std;
  void instructions();
int menu();
void drawt(int& s, char& c);



int main()
{

int choice;
instructions();
choice = menu();
if (choice != 1 && choice != 2)
{
    cout << "You requested to quit. Bye! \n";
    return 0;
} 
if (choice = 1) {

    drawt(s, c);
}
//draw the shape the user requested
//draw_shape(choice);
system("pause");
return 0;
}
void instructions() {
cout << "This program will create a triangle or diamond of your choice in 
size!\n";
cout << "The number you enter will either be the size of the bottom of the 
triangle or the size of the middle of the diamond!\n";
}
int menu() {
int c;
cout << "Please choose between drawing a triangle, diamond or exiting the 
program!\n";
cout << "Enter 1 for a triangle,2 for a diamond and 3 to exit!\n";
cin >> c;
   return c;
   }

   void drawt(int& s, char& c){
  cout << "enter base size of triangle\n";
  cin >> s;
   cout << "Now enter the character you wish the triangle to be made of!\n";
   cin >> c;
   int length = 1;

    for (int i= 0; i < 5; i++) {
       for (int j = 0; j < s; j++) {
        cout << c;
    }

    cout << endl;
    length++;
    if (length = s) {
        break;
        }
      }
   }

он говорит, что и S, и C не определены и не объявлены, и я понятия не имею, почему это не сработает. Я только изучил функции и не уверен, правильно ли я его вызываю или правильно использовал заголовок или чтоименно я поступил неправильно. Я просмотрел множество учебников и тому подобное.Предполагается, что программа рисует треугольник или ромбик, который человек выбирает, а затем рисует его из персонажа по своему выбору.это не близко, но я так зациклен на этом прямо сейчас.спасибо!

1 Ответ

0 голосов
/ 07 марта 2019

Когда вы вызываете эту функцию из main():

drawt(s, c);

Вы отправляете 2 переменные, s и c, в функцию.Но эти переменные еще не существуют в main() - это проблема компиляции здесь.Вы должны сначала объявить их в main():

int s;
char c;

Это должно решить вашу основную проблему.

Вы должны попытаться попрактиковаться с функциями немного больше.У вас есть некоторые проблемы (не критичные) с тем, как вы определили drawt() - он использует аргументы, которые фактически могут быть определены локально, и получает их как ссылки, даже если main() никогда не использует их.Это важные вещи, о которых вы должны узнать, но они не сломают вашу программу, как сейчас.

Кроме того, вы должны немедленно начать делать отступы последовательно - это очень важно:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...