鱼C论坛

 找回密码
 立即注册
查看: 2168|回复: 1

给位大佬能帮我看看这段代码的错误以及如何修改

[复制链接]
发表于 2019-4-28 07:29:47 | 显示全部楼层 |阅读模式
9鱼币
/*The user will be able to add names upto a maximum of 10 names by selecting the A option.  The user will be able to print a list of the stored names, sorted in ascending order, by selecting the P option.  The user will be able to search for a name in the array by selecting the F option.  The program quits when the user selects the Q option.

Include in your program the following functions, using the provided prototypes.

void printNames(string[], int);
Accepts an array of strings and the index of the last used element as its only arguments.  Prints out the contents of the used elements of the array.

void sortNames(string[], int);
Accepts an array of strings and the index of the last used element as its only arguments.  Sorts the used elements of the array in ascending order.  Does not interact with the user in any way(no cin or cout statements).

bool findName(string[], string, int);
Accepts an array of strings, the index of the last used element, and a target string as its only arguments.  Search the array of strings for the target string.  Returns true if found, false otherwise.  Does not interact with the user in any way(no cin or cout statements).
上面的是题目以及要求*/

//我是新手最好能用简单的办法修改



#include <iostream>
#include <string>

using namespace std;

void printNames(string[], int);
void sortNames(string[], int);
bool findNames(string[], string, int);

int main()
{
        const int SIZE = 10;
       
        string name[SIZE];
       
        char letter;
       
        int x = 0;
       
        bool found_nofound;
       
        string idk;
       
        int counter = 1;
       
        do
        {
                cout << "(A)dd a name\n";
               
                cout <<"(F)ind a name\n";
               
                cout <<"(P)rint names\n";
               
                cout <<"(Q)uit\n";
               
                cout << "[AFPQ]: ";
               
                cin >> letter;
               
                if (letter == 'a' || letter == 'f' || letter == 'p'|| letter == 'q' )
                {
                        if (counter <= 10)
                        {
                       
                                switch(letter)
                                {
                                        case 'a':
                                                        ++counter;
                                                       
                                                        cout << "enter a name: ";
                                       
                                                        while(x < SIZE)
                                                        {
                                                                cin >> name[x];
                                                                x++;
                                                                break;
                                                        }
                                                         
                                                break;
                                       
                                        case 'f':
                                                found_nofound = findNames(name, idk, SIZE);
                                                if (found_nofound == 1)
                                                cout << "name found!" << endl;
                                               
                                                else
                                                        cout << "name not found!" << endl;
                                                break;
                                       
                                        case 'p':
                                                printNames(name, SIZE);
                                                break;
                                }
                        }
                        else if(counter >= 10)
                                cout << "array full\n";
                }
                       
                else
                cout << "invalid selecation. try again" << endl;

               
               
        }while(letter != 'q' && letter != 'Q');
               
                cout << "goodbye!" << endl;
}

void printNames(string name1[], int len)
{
        cout << "name:" << endl;
       
        for (int x = 0; x < len; x++)
        {
                sortNames(name1, len);
               
                cout << name1[x] << " ";
        }
        cout << endl;
}
void sortNames(string name2[], int len)
{
        bool swap;
       
        string temp;
        do
        {
                swap = false;
               
                for (int x = 0; x < (len-1); x++)
                {
                        if (name2[x] > name2[x+1])
                        {
                                temp = name2[x];
                                name2[x] = name2[x+1];
                                name2[x+1] = temp;
                                swap = true;
                        }
                }
        }while(swap);
       
}
bool findNames(string name3[], string compare, int len)
{
        cout << "enter a name to search for: ";
       
        cin >> compare;
       
        for (int x = 0; x < len; x++)
        {
                if (compare == name3[x])
                        return 1;
               
                else
                        return 0;
        }
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-30 08:54:44 | 显示全部楼层
你确定??这么汉语在里面??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 03:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表