-3

私は自分のプロジェクトの完成したコードを送信しようとしていましたが、あいまいな「cout」と「cin」、および宣言を期待するいくつかの if と while ブロックのエラーの突然の集中砲火に遭遇するだけでした。最初は、iostream または名前空間が欠落していると思っていましたが、それは問題ではないようです。どんな手掛かり?

#include <iostream>
#include <Windows.h>
#include <string>

#include "ARRAY.H"

using namespace std;

void addToArray(Array<int> &intArray);
void linearSearch();
void binarySearch(Array<int> &intarray, int beg, int end);
void printArray();
void sortArray();
void Remove(int p_index);
void clear();
void testFunctions();
void pop();

    Array<int> intarray(10);
    int num_elements = 10;


int main()
{
    intarray[0] = 42;
    intarray[1] = 6;
    intarray[2] = 2;
    intarray[3] = 51;
    intarray[4] = 16;
    intarray[5] = 13;
    intarray[6] = 44;
    intarray[7] = 19;
    intarray[8] = 26;
    intarray[9] = 88;

    intarray.WriteFile("unorderedArray.txt");

    testFunctions();
}

// -------------------------------------------------------
//  Name:         testFunctions
//  Description:  General testing of all the functions
//  Arguments:    None.
// -------------------------------------------------------

void testFunctions()
{
    intarray.ReadFile("unorderedArray.txt");

    printArray();

    sortArray();

    Remove(4);

    addToArray(intarray);

    linearSearch();

    binarySearch(intarray, 0, intarray.Size());


    //clear();

    pop();


    printArray();


    intarray.WriteFile("orderedArray.txt");

    cout<<"\nThis concludes our tests. Full marks please!"<<endl;

    Sleep(10000);


}

// -------------------------------------------------------
//  Name:         addToArray
//  Description:  Allows users to insert a new element into the array
//                at an index of their choosing
//  Arguments:    The Array
// -------------------------------------------------------

void addToArray(Array<int> &intarray)
{
    int newValue; //the value to be added to the array
    int newIndex; //the index location of the new array
    int grow_size; //the amount the array will grow by if it is full

    if(num_elements == intarray.Size() ) //If array is full but user wants to add to it, they will be prompted to increase it's size before being allowed to add an elememt
        {
            cout<<"\nArray is full!!!!! How much do you want to grow it?"<<endl;
            cin>> grow_size;
            intarray.Resize(intarray.Size() + grow_size); //creates a new larger array and copies everything over
            cout<<"Array resized"<<endl;
        }

    cout<<"What do you want to add to the array?"<<endl;
    cin >> newValue;
    cout<<"At what point should this value be added?"<<endl;
    cin >> newIndex;

    intarray.Insert(newValue, newIndex);
    num_elements++; 

    sortArray(); //sorts the values from smallest to largest
    printArray();
}

// -------------------------------------------------------
//  Name:         linearSearch
//  Description:  Searches through the Array from start to finish for the
//                inputted value.
//  Arguments:    None.
// -------------------------------------------------------

void linearSearch()
{
    int search; //the search key
    int result = 0; 

    cout<<"\nEnter Element you want to Search=";
    cin>>search;

    for(int i=1;i<=intarray.Size();i++)  //goes through each element of the array until it finds the value in the key.                    
        if(intarray[i]==search)
            {
            cout<<"\nData is Found at Location : "<<i;
            result=1;
            break;
            }
        }

        if(result==0)
            {
            cout<<"Data is Not Found";
            }

        cout<<"\n"<<endl;
}

// -------------------------------------------------------
//  Name:         binarySearch
//  Description:  Uses a B-Tree format to search for inputted 
//                values of a sorted array
//  Arguments:    The Array, int beg: the start of the Array, int end: The end of the Array
// -------------------------------------------------------

void binarySearch(Array<int> &intarray, int beg, int end)
{
        int key; //the value to be searched for
        cout<<"\nEnter Item you want to Search= ";
        cin>>key;
        int mid; // the middle of the array

        //beg=1;
        //end=intarray.Size();

        mid=(beg+end)/2; //the middle point of the array is found by adding the beginning and end values and dividing them by two.                      

        while(beg<=end && intarray[mid]!=key) //While the mid value does not equal the key, if it is smaller it adds 1 to the beginning but if it is            
            //larger it subtracts 1 from the end and then the value of the middle point is found again. This continues until either the mid value equals the key value  
        {
        if(intarray[mid]<key)
        beg=mid+1;
        else
        end=mid-1;

        mid=(beg+end)/2;
        }

        if(intarray[mid]==key)
        {
        cout<<"\nData is Found at Location : "<<mid;
        }
        else
        {
        cout<<"Data is Not Found";
        }
} 

// -------------------------------------------------------
//  Name:         printArray
//  Description:  prints the array
//  Arguments:    None.
// -------------------------------------------------------

void printArray()
{
    int i = intarray[0];


    cout<<"\n The contents of the array are : "<<endl;

       cout<<"\n     Elements :"<<"\t\t     Value:"<<endl;

       for (i=0;i<intarray.Size();i++) //goes through each element of the array and prints them nice and neat
         cout<<" \tarray ["<<i<<"]"<<"\t\t  "<<intarray[i]<<endl;

}

// -------------------------------------------------------
//  Name:         sortArray
//  Description:  sorts the Array from smallest value to largest
//  Arguments:    None.
// -------------------------------------------------------

void sortArray()
{
    cout<<"\nSorting array..."<<endl;

        for (int i = 0; i < intarray.Size(); i++)
    {
        // nSmallestIndex is the index of the smallest element found so far
        int nSmallestIndex = i;

        // Searches through every element starting at nStartIndex+1
        for (int nCurrentIndex = i + 1; nCurrentIndex < intarray.Size(); nCurrentIndex++)
        {
            // If the current element is smaller than the previously found smallest it becomes the new smallest index
            if (intarray[nCurrentIndex] < intarray[nSmallestIndex])
                nSmallestIndex = nCurrentIndex;
        }

        // Swap the start element with the smallest element
        swap(intarray[i], intarray[nSmallestIndex]);


    }

        printArray();
}

// -------------------------------------------------------
//  Name:         Remove
//  Description:  Removes an element from the array and
//                resizes it.
//  Arguments:    int p_index: The index of the element to be deleted
// -------------------------------------------------------

void Remove(int p_index)
{
int index;

    cout<<"\nRemoving index "<<p_index<<" from array"<<endl;

          // move everything after the deleted element down by one cell.
          for(index = p_index + 1; index < intarray.Size(); index++)
          {
              intarray.m_array[index - 1] = intarray.m_array[index];
          }

          //Resizes the array by reducing it by one so that the last value is not duplicated
          intarray.Resize(intarray.Size() -1);
          num_elements--;

          printArray();
 }

// -------------------------------------------------------
//  Name:         clear
//  Description:  "clears" the array by changing all the values to 0
//  Arguments:    None.
// -------------------------------------------------------

void clear()
{
    //goes through each element of the array and changes all the values to 0.
    for(int i=0; i < intarray.Size(); i++)
        {
        intarray[i]=0;
        }
    printArray();
}

// -------------------------------------------------------
//  Name:         pop
//  Description:  Pops off the last element of the array
//  Arguments:    None.
// -------------------------------------------------------

void pop()
{
    //Reduces the size of the array by one, chopping off the last element.
    cout<<"\nPopping off the last element of the Array"<<endl;
          intarray.Resize(intarray.Size() -1);
          num_elements++;
}

エラー:

1>c:\users\liam\desktop\orderedarray\orderedarray\main.cpp(198): エラー C2872: 'cout': あいまいなシンボル 1> 'c:\users\liam\desktop\orderedarray\orderedarray\main の可能性があります.cpp(144) : int cout' 1> または 'c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(26) : std::ostream std::cout' 1>c:\ users\liam\desktop\orderedarray\orderedarray\main.cpp(198): エラー C2297: '<<' : 不正、右オペランドの型は 'const char [35]' 1>c:\users\liam\desktop\orderedarray \orderedarray\main.cpp(198): エラー C2563: 仮パラメーター lis の不一致

4

1 に答える 1

1

ちょっと待って、私は自分でそれを修正することができました。エラー メッセージをざっと見てみると、関数の 1 つに角かっこがないことがわかりました。コードは正常に動作するようになったので、すべての初心者コーダーにとっての教訓は、プログラム全体が突然エラーでいっぱいになった場合は、すべてのブラケットが適切にペアリングされているかどうかを確認することだと思います.

于 2013-07-07T20:29:19.527 に答える