本来前面五题都做完了,写博客时没保存好草稿= =,写了个整合版的程序,实现前五题的关键部分。
1.定义一个叫jojo的结构,存储姓名、替身和力量值,使用动态结构数组初始化二乔、承太郎和乔鲁诺乔巴纳等人的信息。循环地用菜单化的选项提示用户输入,选项1:显示所有人的替身;选项2:按一定比率强化白金之星的力量值,并输出当前所有人力量的平均值;选项3:要求用户输入一系列字符,然后返回相同的字符,其中转换字母大小写,遇到“@”就停止;选项4:退出。如果输入1-4以外的数字,提示用户重新输入,如果输入的不是数字,则提示失败退出程序。
#include<iostream> #include<cctype> using namespace std; const double ratio = 0.1; const int strsize = 100; struct jojos { char name[20]; char stand[20]; double power; }; int main() { jojos *joptr = new jojos[4]; joptr[0] = { "Joseph", "Hermit Purple", 6 }; joptr[1] = { "Jotaro","Star Platinum",9 }; joptr[2] = { "Giorno Giovanna", "Gold Experience", 8 }; joptr[3] = { "me","Repeater",1 }; int choice; int flag = 1; char store[strsize]; char prmt[] = { "Make your choice: 1)show the stand 2)power up 3)my stand 4)quit " }; while (flag) { cout << prmt; if (cin >> choice) { switch (choice) { case 1: { for (int i = 0; i < 4; i++) { cout << joptr[i].name << ":" << joptr[i].stand << endl; } cout << " "; break; } case 2: { cout << "Power up! "; joptr[1].power = joptr[1].power*(1 + ratio); double sum = 0; for (int i = 0; i < 4; i++) { sum += joptr[i].power; } cout << "Jotaro's star platinum:" << joptr[1].power << endl; cout << "Power average:" << sum / 4 << endl; cout << " "; break; } case 3: { cin.get(); cout << "Enter some characters: "; cin.get(store, strsize); for (int i = 0; store[i] != '