C++ 程序问题!急!

来源:百度知道 编辑:UC知道 时间:2024/07/16 14:15:02
这是一个关于字符串的程序,真的很急,请大家一定帮帮我...如果回答得好的话我可以再多追加20分的...真的谢谢了..PS,因为原说明是英文的,我只好大概翻译了下...感觉基本的意思都已经出来了..如果有大侠想参照英文的原文的话,我将在中文翻译的下面贴出来..谢谢了....

以下是这个程序的要求:

首先,在MAIN里面需要声明一个字符串数组来保存学生的名字.然后要求用户输入学生的个数...
接下来需要写一个名为input的函数,它有2个参数,一个是刚才声明的那个字符串数组,另一个就是数组的大小..input函数将让用户分别输入学生的姓名.在输入完所有学生的姓名后,程序需要将学生的姓和名分别互换位置..比如一个学生的姓名为:Ann Sobe,那么调换后的结果就应为:Sobe,Ann. 当然,还有一点需要注意的是学生的名字中可能包含多个字符..比如:George Herbert Walker Bush..在调换后应该显示为:Bush, George Herbert Walker..
再此之后呢,你需要再写一个名为sort的函数将所有的这些互换过后的学生姓名按照英文字母从大到小的循序排列出来...(也就是说以a,b,c,d,e,f,g循序..比如有2个名字,一个为:Jordan,Michale,另一个为 Bush,George 那么Bush,George就应该在Jordan,Michale的前面因为B在J的前面嘛)...最后,再将所有排序好的学生姓名在程序里显现出来...

这里是英文原文:

You will need to declare an array of strings to hold the names of students enrolled in a particular class. The CSA department has a class limit of 40 so it is safe to use 100 as the size of the array. Ask the user to supply the number of students enrolled in the class.
We will then use

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

#define SIZE 81
#define LIM 20
#define HALT ""
void stsrt(char strings[][SIZE], int num);
void Input(char strings[][SIZE], int num);

int main(void)
{
char input[LIM][SIZE];

//char *ptstr[LIM];
//char a;
int k;
int num;
cout<<"Input the number of names: "<<endl;
cin>>num;
//getchar ();
Input(input, num);

stsrt(input, num); /* string sorter */

puts("\nHere's the sorted list:\n");
for (k = 0; k < num; k++)
puts(input[k]) ; /* sorted pointers */

return 0;
}

/* string-pointer-sorting function */
void stsrt(char strings[][SIZE], int num)
{
char temp[SIZE];
int top, seek;

for (top = 0; top < num-1; top++)
for (seek =