#include<iostream> #include<cstring> using namespace std; struct Friend { char name[15]; int birth; char number[20]; }; int main() { int n; cin >> n; struct Friend f[10]; for (int i = 0; i < n; i++) { cin >> f[i].name; cin >> f[i].birth; cin.getline(f[i].number,20); } for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { struct Friend min = f[i]; if (min.birth > f[j].birth) { struct Friend temp = min; min = f[j]; f[j] = temp; } } } for (int i = 0; i < n; i++) { cout << f[i].name << " " << f[i].birth << " " << f[i].number << endl; } }
时间: 2024-03-31 17:34:44 浏览: 49
这是一个 C++ 的程序,用来对输入的朋友信息按照生日从小到大进行排序,并输出排好序的信息。其中使用了结构体来存储每个朋友的名字、生日和电话号码。程序首先会读入朋友的个数 n,然后读入每个朋友的信息,最后进行排序并输出。
在输入朋友电话号码这一步,需要使用 cin.getline(f[i].number,20) 来读取整行输入,避免只读入一部分电话号码。这里假设每个电话号码最多不超过 20 个字符。
值得注意的是,这个程序只能处理最多 10 个朋友的信息,因为定义了一个大小为 10 的结构体数组来存储朋友信息。如果需要处理更多的朋友信息,需要修改数组的大小。
相关问题
#include<iostream> #include<cstring> using namespace std; struct Friend { char name; int birth; char number; }; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { struct Friend f[10]; cin >> f[i].name >> f[i].birth >> f[i].number; cout<< f[i].name<< f[i].birth<< f[i].number; } }
根据代码的逻辑,它会让用户输入一个整数n,然后循环n次,在每次循环中让用户依次输入一个朋友的名字(char类型)、出生年月(int类型)和电话号码(char类型),并将这些信息存储到名为f的结构体数组中。最后,它会遍历数组,输出每个朋友的名字、出生年月和电话号码。
然而,在for循环中,每次都会重新定义一个大小为10的结构体数组f,这样每次只会向数组的第0个元素中输入数据,而其他元素没有被赋值,所以在输出时会出现一些无意义的字符。同时,结构体中的name和number应该声明为字符数组(char [])而不是单个字符(char),否则只能存储一个字符。
另外还需要注意,输入电话号码时,如果是字符串类型,应该使用cin.getline()来读取,否则可能会出现输入错误。
#include<iostream> #include<cstring> using namespace std; struct Friend { char name[10]; int birth[10000005]; char number[18]; }; int main() { int n; cin >> n; struct Friend f[10]; for (int i = 0; i < n; i++) { cin >> f[i].name; cin >> f[i].birth; cin.getline(f[i].number,18); cout << f[i].name << endl << f[i].birth << endl << f[i].number << endl; } }
这是一个 C++ 代码,定义了一个名为 Friend 的结构体,其中包含三个成员变量:name(姓名)、birth(出生日期)和 number(电话号码)。
在主函数中,首先读入一个整数 n,表示有 n 个朋友需要输入信息。
然后定义了一个 Friend 类型的数组 f,大小为 10。接下来通过 for 循环,读入每个朋友的姓名、出生日期和电话号码,并输出这些信息。
需要注意的是,出生日期的数据类型应该是 int,而不是 int 数组。而且在读入电话号码时需要使用 getline 函数,并且传入的第二个参数应该是字符串的最大长度 18。
阅读全文