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

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);
}
...全文
413 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
  • 打赏
  • 举报
回复
你要将出错行号,出错信息等一同贴出来,不然,让人家查看起来太费事了。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执行测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生成、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生成随机数值,datetime模块负责处...
代码下载地址: https://pan.quark.cn/s/664854f01855 TCP/IP SOCKET协议构成了互联网通信的基石,它明确了网络设备之间数据交换的规范。TCP(Transmission Control Protocol)是一种以连接为导向、具备可靠性且基于字节流的传输层通信规范,而UDP(User Datagram Protocol)则是一种非连接型且不可靠的传输协议。在实施TCP/IP SOCKET的调试工作中,专业的软件能够协助开发者更清晰地洞察网络通信的流程,精准地找出故障点,并对代码进行改进。 "TCP模拟调试工具"即为一种实用的辅助性软件,它赋予用户模拟TCP连接、发送及接收数据的能力,从而对网络应用程序进行测试和调试。此工具或许具备以下几项功能: 1. **连接模拟**:可以模拟客户端与服务器之间TCP连接的完整过程,涵盖三次握手和四次挥手阶段,从而帮助理解TCP连接的完整生命周期。 2. **数据发送与接收**:支持自定义数据包的发送,并能显示接收到的数据,这对于核实数据传输的准确性极为关键。 3. **错误检测与重传**:TCP协议内含错误检测和丢失数据自动重传的机制,该工具或许能够模拟这些场景,助力开发者测试其应用的容错性能。 4. **流量控制与拥塞控制**:TCP通过滑动窗口机制实现流量控制与拥塞管理,工具或许提供查看和调整这些参数的选项。 5. **端口监听**:能够监听指定的端口,观察数据的进出情况,这对于服务器端程序的调试尤为有益。 6. **日志记录**:记录所有通信事件,便于后续的分析与问题定位。 7. **多线程支持**:针对处理多个并发连接的程序,工具或许提供多线程或并发会话的模拟。 8. **协议解...

65,213

社区成员

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

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