#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; } }
时间: 2024-03-31 08:35:18 浏览: 27
根据代码的逻辑,它会让用户输入一个整数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。
#include <iostream>#include <cstring>using namespace std;int main(){ char src[] = "hello world"; char dest[strlen(src) + 1]; for(int i = 0; i < strlen(src) + 1; i++) { dest[i] = src[i]; } cout << dest << endl; return 0;}这段代码的那个部分有错误
这段代码没有错误,可以正确地将字符串 "hello world" 复制到另一个字符数组 dest 中,并输出 "hello world"。但是,可以使用更简洁的方式来完成字符串复制。例如,可以使用 C++ 标准库中提供的 strcpy 函数来实现:
```
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char src[] = "hello world";
char dest[strlen(src) + 1];
strcpy(dest, src);
cout << dest << endl;
return 0;
}
```
阅读全文