【发布时间】:2022-01-12 00:27:42
【问题描述】:
我们被要求编写一个程序,使用二维数组列出 40 个学生姓名并将它们存储在学生记录数组中。
这是我目前的代码
#include<iostream>
using namespace std;
int
main ()
{
cout << "\tStudent name";
char name[5][8] = {
{"Airah", "Ariya", "Arissa", "Althea", "Annika"},
{"Alvin", "Adrielle", "Anthony", "Angelo", "Azriel"},
{"Belle", "Camila", "Clara", "Elize", "Felicity"},
{"Isabel", "Irish", "Kaila", "Kitchy","Kianna"},
{"Lucas", "Miracle", "Natalia", "Primo", "Paris"},
{"Rafael", "Ryan", "Rico", "Sky", "Serafine"},
{"Samantha", "Scott", "Timothy", "Theo", "Tyron"},
{"Winter", "Xyler", "Yohan", "Zachary", "Zhea"},
}
{
for (i = 0; i < 40; i++)
printf ("", name[i])}
}
不幸的是,随后会显示一个错误,说明:
main.cpp:18:3: error: too many initializers for ‘char [8]’
18 | }
| ^
我该如何解决这个问题?谢谢!
【问题讨论】:
-
char是一个字符,而不是整个字符串。所以你的整个name只能存储 40 个不同的字符。也许您打算改用const char * name[5][8]。 -
char name[5][8]->std::vector<std::string> -
你应该将你的矩阵声明为
static const,除非你打算修改它。这将帮助您的编译器使您的代码更高效。