大家看下,哪里出错了。它老是说没有标识

twlhmq198821 2007-04-13 08:44:24
#include <iostream.h>
const int n=10;
const int m=7;
int a[n][m];
void main()
{char choice;
do{
cout<<"A输入每个学生装的成绩单 B输出每个学生的总分成绩 \n";
cout<<"C输出每门功课的平均分 Q退出\n";
cout<<"请选择(A--C):";
cin>>choice;
switch(choice)
{
case q: break;
case a: cout<<"请输入10个学生的各7门成绩:\n";
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
cout<<endl;break;
case b: int sum;
for(int i=0;i<n;i++)
{sum=0;
for(int j=0;j<m;j++)
sum+=a[i][j];
cout<<"第"<<i+1<<"个学生的总成绩为:"<<sum<<endl;
}
cout<<endl;break;
case C:int sum;
for(int i=0;i<m;i++)
{sum=0;
for(int j=0;j<n;j++)
sum+=a[j][i];
cout<<"第"<<i+1<<"门功课的平均成绩为:";
cout<<float(sum)/n<<endl;
}
cout<<endl;break;
default: continue;
}
}while(choice!=q);
}
...全文
410 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
各位 我是新手,怎么给分啊
twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
mrdone 2007-04-13
  • 打赏
  • 举报
回复
那个是变量作用域的问题,

你定义的变量i,j,sum都是局部变量,

所以,一出case就失效了,但是,又因为前面定义了变量i,j,sum

所以,下面定义的时候,会出现重定义的错误
mrdone 2007-04-13
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <stdlib.h>
const int n=10;
const int m=7;
int a[n][m];
void main()
{
char choice;
do
{
int i=0;//i是一个好多地方都要用到的变量,所以定义在这里要好些。
int j=0;//j也一样
int sum=0;
system("color 3f");
cout<<"\ta 输入每个学生装的成绩单\r\n\tb 输出每个学生的总分成绩\n";
cout<<"\tc 输出每门功课的平均分\r\n\tq 退出\r\n";
cout<<"请选择(a,b,c,q):\r\n";
cout <<"你的输入:";
cin>>choice;
switch(choice)
{
case 'q': // 这里输入的是字符,所以应该用''括起来。
break;
case 'a':
cout<<"请输入10个学生的各7门成绩:\n";
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cin>>a[i][j];
cout<<endl;//这里的cout没有道理
}
break;
case 'b':
//这里的sum也要定义在外面,因为好多地方要用到
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<m;j++)
sum+=a[i][j];
cout<<"第"<<i+1<<"个学生的总成绩为:"<<sum<<endl;
}
cout<<endl;break;
case 'c':
//int sum;
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<n;j++)
sum+=a[j][i];
cout<<"第"<<i+1<<"门功课的平均成绩为:";
cout<<float(sum)/n<<endl;
}
cout<<endl;break;
default:
system("cls");
break;//不能是continue;
}
}while(choice!='q');
}
twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
mathe 2007-04-13
  • 打赏
  • 举报
回复
将变量i,j的定义放在main函数的开始部分。
在很多编译器中,不允许变量的定义直接放在switch语句内部,因为这个作用域会穿过多个case语句,引起歧异。
awl005 2007-04-13
  • 打赏
  • 举报
回复
case a; 等

case 后面只能是常量
twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
--------------------Configuration: Cpp4 - Win32 Debug--------------------
Compiling...
Cpp4.cpp
D:\Personal\My Documents\Cpp4.cpp(12) : error C2065: 'i' : undeclared identifier
D:\Personal\My Documents\Cpp4.cpp(12) : error C2065: 'j' : undeclared identifier
D:\Personal\My Documents\Cpp4.cpp(24) : error C2360: initialization of 'i' is skipped by 'case' label
D:\Personal\My Documents\Cpp4.cpp(19) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(25) : error C2374: 'i' : redefinition; multiple initialization
D:\Personal\My Documents\Cpp4.cpp(19) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(33) : error C2360: initialization of 'i' is skipped by 'case' label
D:\Personal\My Documents\Cpp4.cpp(25) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(33) : error C2360: initialization of 'i' is skipped by 'case' label
D:\Personal\My Documents\Cpp4.cpp(19) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(33) : error C2086: 'sum' : redefinition
D:\Personal\My Documents\Cpp4.cpp(34) : error C2374: 'i' : redefinition; multiple initialization
D:\Personal\My Documents\Cpp4.cpp(19) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(42) : error C2361: initialization of 'i' is skipped by 'default' label
D:\Personal\My Documents\Cpp4.cpp(34) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(42) : error C2361: initialization of 'i' is skipped by 'default' label
D:\Personal\My Documents\Cpp4.cpp(25) : see declaration of 'i'
D:\Personal\My Documents\Cpp4.cpp(42) : error C2361: initialization of 'i' is skipped by 'default' label
D:\Personal\My Documents\Cpp4.cpp(19) : see declaration of 'i'
Error executing cl.exe.

Cpp4.exe - 11 error(s), 0 warning(s)




twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
我是新手,才学没几天。。。
顺便告诉我这里怎么给分,我都不会。。。你们要分的话,就教教我怎么给
yixiao386 2007-04-13
  • 打赏
  • 举报
回复
怎么还是这个啊?
mathe 2007-04-13
  • 打赏
  • 举报
回复
main函数前面的:
#include <iostream.h>
const int n=10;
const int m=7;
int a[n][m];
也要加上去。你是否学过C/C++? :)
twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
int main()
{
char choice;
do{
cout<<"A输入每个学生装的成绩单 B输出每个学生的总分成绩 \n";
cout<<"C输出每门功课的平均分 Q退出\n";
cout<<"请选择(A--C):";
cin>>choice;
switch(choice)
{
int sum;
case 'Q':
case 'q': break;
case 'A':
case 'a': cout<<"请输入10个学生的各7门成绩:\n";
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
cout<<endl;break;
case 'b':
case 'B':
for(int i=0;i<n;i++)
{sum=0;
for(int j=0;j<m;j++)
sum+=a[i][j];
cout<<"第"<<i+1<<"个学生的总成绩为:"<<sum<<endl;
}
cout<<endl;break;
case 'c':
case 'C':
for(int i=0;i<m;i++)
{sum=0;
for(int j=0;j<n;j++)
sum+=a[j][i];
cout<<"第"<<i+1<<"门功课的平均成绩为:";
cout<<float(sum)/n<<endl;
}
cout<<endl;break;
default: continue;
}
}while(choice!='q' || choice!='Q');

system("pause");
return 0;
}



--------------------Configuration: Cpp3 - Win32 Debug--------------------
Compiling...
Cpp3.cpp
d:\personal\my documents\cpp3.cpp(5) : error C2065: 'cout' : undeclared identifier
d:\personal\my documents\cpp3.cpp(5) : error C2297: '<<' : illegal, right operand has type 'char [50]'
d:\personal\my documents\cpp3.cpp(6) : error C2297: '<<' : illegal, right operand has type 'char [29]'
d:\personal\my documents\cpp3.cpp(7) : error C2297: '<<' : illegal, right operand has type 'char [14]'
d:\personal\my documents\cpp3.cpp(8) : error C2065: 'cin' : undeclared identifier
d:\personal\my documents\cpp3.cpp(8) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
d:\personal\my documents\cpp3.cpp(15) : error C2297: '<<' : illegal, right operand has type 'char [28]'
d:\personal\my documents\cpp3.cpp(16) : error C2065: 'n' : undeclared identifier
d:\personal\my documents\cpp3.cpp(17) : error C2065: 'm' : undeclared identifier
d:\personal\my documents\cpp3.cpp(18) : error C2065: 'a' : undeclared identifier
d:\personal\my documents\cpp3.cpp(18) : error C2109: subscript requires array or pointer type
d:\personal\my documents\cpp3.cpp(18) : error C2109: subscript requires array or pointer type
d:\personal\my documents\cpp3.cpp(18) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
d:\personal\my documents\cpp3.cpp(19) : error C2065: 'endl' : undeclared identifier
d:\personal\my documents\cpp3.cpp(19) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
d:\personal\my documents\cpp3.cpp(20) : error C2360: initialization of 'i' is skipped by 'case' label
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(21) : error C2360: initialization of 'i' is skipped by 'case' label
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(22) : error C2374: 'i' : redefinition; multiple initialization
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(25) : error C2109: subscript requires array or pointer type
d:\personal\my documents\cpp3.cpp(25) : error C2109: subscript requires array or pointer type
d:\personal\my documents\cpp3.cpp(26) : error C2297: '<<' : illegal, right operand has type 'char [3]'
d:\personal\my documents\cpp3.cpp(28) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
d:\personal\my documents\cpp3.cpp(29) : error C2360: initialization of 'i' is skipped by 'case' label
d:\personal\my documents\cpp3.cpp(22) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(29) : error C2360: initialization of 'i' is skipped by 'case' label
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(30) : error C2360: initialization of 'i' is skipped by 'case' label
d:\personal\my documents\cpp3.cpp(22) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(30) : error C2360: initialization of 'i' is skipped by 'case' label
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(31) : error C2374: 'i' : redefinition; multiple initialization
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(34) : error C2109: subscript requires array or pointer type
d:\personal\my documents\cpp3.cpp(34) : error C2109: subscript requires array or pointer type
d:\personal\my documents\cpp3.cpp(35) : error C2297: '<<' : illegal, right operand has type 'char [3]'
d:\personal\my documents\cpp3.cpp(36) : error C2296: '<<' : illegal, left operand has type 'float'
d:\personal\my documents\cpp3.cpp(36) : error C2297: '<<' : illegal, right operand has type 'float'
d:\personal\my documents\cpp3.cpp(38) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
d:\personal\my documents\cpp3.cpp(39) : error C2361: initialization of 'i' is skipped by 'default' label
d:\personal\my documents\cpp3.cpp(31) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(39) : error C2361: initialization of 'i' is skipped by 'default' label
d:\personal\my documents\cpp3.cpp(22) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(39) : error C2361: initialization of 'i' is skipped by 'default' label
d:\personal\my documents\cpp3.cpp(16) : see declaration of 'i'
d:\personal\my documents\cpp3.cpp(43) : error C2065: 'system' : undeclared identifier
Error executing cl.exe.

Cpp3.exe - 32 error(s), 5 warning(s)


昏!!!
twlhmq198821 2007-04-13
  • 打赏
  • 举报
回复
谢谢
jixingzhong 2007-04-13
  • 打赏
  • 举报
回复
case q:
==>
case 'Q': //用 ''表示字符,如果是直接使用 q,代表的是一个变量,但是你没有定义这个变量
case 'q':
jixingzhong 2007-04-13
  • 打赏
  • 举报
回复
int main()
{
char choice;
do{
cout<<"A输入每个学生装的成绩单 B输出每个学生的总分成绩 \n";
cout<<"C输出每门功课的平均分 Q退出\n";
cout<<"请选择(A--C):";
cin>>choice;
switch(choice)
{
int sum;
case 'Q':
case 'q': break;
case 'A':
case 'a': cout<<"请输入10个学生的各7门成绩:\n";
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
cout<<endl;break;
case 'b':
case 'B':
for(int i=0;i<n;i++)
{sum=0;
for(int j=0;j<m;j++)
sum+=a[i][j];
cout<<"第"<<i+1<<"个学生的总成绩为:"<<sum<<endl;
}
cout<<endl;break;
case 'c':
case 'C':
for(int i=0;i<m;i++)
{sum=0;
for(int j=0;j<n;j++)
sum+=a[j][i];
cout<<"第"<<i+1<<"门功课的平均成绩为:";
cout<<float(sum)/n<<endl;
}
cout<<endl;break;
default: continue;
}
}while(choice!='q' || choice!='Q');

system("pause");
return 0;
}
mathe 2007-04-13
  • 打赏
  • 举报
回复
你要将出错行号,出错信息等一同贴出来,不然,让人家查看起来太费事了。
内容概要:本文围绕“可再生能源发电与电动汽车的协同调度策略”展开硕士论文级别的研究与复现工作,基于Matlab平台构建了高比例可再生能源接入背景下电力系统与电动汽车(EV)之间的多时间尺度协同优化模型。研究重点在于应对风光发电不确定性,充分利用电动汽车作为移动储能单元的灵活充放电能力(含V2G技术),实现电网削峰填谷、提升新能源消纳效率与系统运行经济性。文中综合考虑了异质电动车集群特性、V2G过程中的损耗约束以及随机因素影响,采用如深度确定性策略梯度(DDPG)强化学习、混合整数线性规划(MILP)等先进优化算法进行求解,并通过基准模型对比验证了所提自适应调度策略在提升电网稳定性、降低运行成本方面的有效性。; 适合人群:具备一定电力系统基础知识、优化理论背景及Matlab编程能力的研究生、科研人员,以及从事新能源并网、智能电网调度、车网互动(V2G)等方向的工程技术人员。; 使用场景及目标:①学习并复现已发表高水平硕士论文中的协同调度建模方法与仿真流程;②掌握将深度强化学习(如DDPG)应用于虚拟电厂、电动汽车集群调度等复杂非线性决策问题的技术路径;③为开展新能源消纳、需求侧响应、微电网优化运行等相关课题的研究提供可复用的代码框架与创新思路参考。; 阅读建议:建议读者结合文中提供的完整Matlab代码与技术文档,深入理解模型构建逻辑、算法实现细节与参数设置依据,优先在Simulink/Matlab环境中运行并调试仿真案例,通过调整场景参数与算法超参,探究不同策略对调度效果的影响,从而深化对协同调度机制与智能优化方法应用的理解。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧