C++ 程序不知道问题出来哪里?望高手指教

void f5(int x)
{if(k==0)
printf("暂时还没有学生的记录信息。");
else
{
int n,m;
char t;
printf("1.按学号查询:\n2.按姓名查询:");
scanf("%d",n);
if(n==1)
{printf("学号:");
scanf("%d",&m)
for(i=0;i<5;i++)
if(m==stu[i].num)
{ i++;
switch(i)
{case 1:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[0].name,stu[0].num,stu[0].score[0],stu[0].score[1],stu[0].score[2]);break;
case 2:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[1].name,stu[1].num,stu[1].score[0],stu[1].score[1],stu[1].score[2]);break;
case 3:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[2].name,stu[0].num,stu[2].score[0],stu[2].score[1],stu[2].score[2]);break;
case 4:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[3].name,stu[0].num,stu[3].score[0],stu[3].score[1],stu[3].score[2]);break;
case 5:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[4].name,stu[0].num,stu[4].score[0],stu[4].score[1],stu[4].score[2]);break;}
}
else
printf("无此学号.");
}
else
{ printf("姓名:");gets(t);

for(i=0;i<5;i++)
if(strcmp(t,stu[i].num)==0)
{ i++;
switch(i)
{case 1:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[0].name,stu[0].num,stu[0].score[0],stu[0].score[1],stu[0].score[2]);break;
case 2:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[1].name,stu[1].num,stu[1].score[0],stu[1].score[1],stu[1].score[2]);break;
case 3:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[2].name,stu[0].num,stu[2].score[0],stu[2].score[1],stu[2].score[2]);break;
case 4:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[3].name,stu[0].num,stu[3].score[0],stu[3].score[1],stu[3].score[2]);break;
case 5:printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[4].name,stu[0].num,stu[4].score[0],stu[4].score[1],stu[4].score[2]);break;}
}

}

}

}

--------------------Configuration: 12 - Win32 Debug--------------------
Compiling...
12.cpp
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2018: unknown character '0xa1'
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2018: unknown character '0xac'
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2146: syntax error : missing ')' before identifier 'strcmp'
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2059: syntax error : ')'
f:\学习\c++\c++作业\大作业 一题\5.h(14) : error C2143: syntax error : missing ';' before '{'
问题指向为图示位置。

第1个回答  2011-11-17
Compiling...
12.cpp
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
-----strcmp 第一个参数是应该是 const char*类型的,但是你给的参数是 int 类型的
而且if(strcmp(t,stu[i].num)==0)也不对 ,strcmp 是用于字符串比较的,数字比较写成这样 if( t==stu[i].num )

f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2018: unknown character '0xa1'
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2018: unknown character '0xac'
上面两行说的是有未知字符,虽然你在编辑器里看不到,但实际上是有的,你把这行重新手打一边

你仔细,耐心看一下出错的信息就明白了

f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2146: syntax error : missing ')' before identifier 'strcmp'
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
f:\学习\c++\c++作业\大作业 一题\5.h(13) : error C2059: syntax error : ')'
f:\学习\c++\c++作业\大作业 一题\5.h(14) : error C2143: syntax error : missing ';' before '{'
第2个回答  2011-11-17
void f5(int x) {
if(k == 0) {
printf("暂时还没有学生的记录信息。");
return;
}
int n,m,flag;
char t[20];
printf("1.按学号查询:\n2.按姓名查询:");
scanf("%d",&n);
if(n == 1) {
printf("学号:");
scanf("%d",&m);
for(int i = 0;i < 5;i++) {
flag = 0;
if(m == stu[i].num) {
printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
flag = 1;
}
}
if(flag == 0) printf("无此学号:%d",m);
}
else {
printf("姓名:");
gets(t);
for(int i = 0;i < 5;i++) {
flag = 0;
if(strcmp(t,stu[i].num) == 0) {
printf("姓名:%s\t学号:%d\tMATH:%d\tC:%d\tENGLISH:%d",stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
flag = 1;
}
}
if(flag == 0) printf("无此姓名:%s",t);
}
}追问

一题\5.h(14) : error C2143: syntax error : missing ';' before 'for'
一题\5.h(28) : error C2664: 'gets' : cannot convert parameter 1 from 'char' to 'char *'
一题\5.h(31) : error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'
呜呜 还是有错误啊 ,麻烦了哈

追答

错误在5.h头文件中,与上述代码没关系吧?如果你将这些代码放在头文件中,请你将全部代码贴出来,否则,我帮不到你。

本回答被提问者采纳
第3个回答  2011-11-17
不说别的,你的这些case用得让人佩服。

出错的地方是头文件,自己看一下。追问

头文件 看不出来啊 具体一点啦 我是初学者 还不太懂啊

第4个回答  2011-11-17
scanf("%d",n);
这个错了吧?
scanf("%d",&n);

visual C++ 中出了错不显示错误的具体位置啊
方法1:启动VC时不要用图形界面,通过在命令提示符下输入:Msdev \/useenv运行(注意啦\/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使用一次这样的方式运行VC,以后再次通过双击图标的方式启动也不会有问题。方法2:使用你的VC安装盘修复一下。方法3:在VC中点击“Tools”—>“O...

c++程序无法运行 求指点!如果能跑出程序 追加50啊 湿兄~~
不知道你是要解决算法上问题,还是代码上的,你的代码有2处问题:1、stdlib库中abs()函数的参数要求为整型,你用的是浮点型,需要重新定义一个abs宏 define abs(a) = (a>0) ? a : (-a)2、这句for(int t=0;t<=3900;t=+300),是死循环(t=+300?),改为:for(int t=0;t<=39...

对于这个C++程序,我又一些疑问,希望能帮我解读。
1.现在规范代码,都是int main()不再是以前的void main();不管怎样main()也是一个函数,既然不是void类型就要有返回值;如果执行到return语句时,该函数结束。所以你主函数中return0;后面一句输出是无效的。至于它是返回给谁,我不清楚。2.你的说法是可以的 3.在C或者C++ 中都是由主函数开始执行...

求助高人。。。新人学习C++又不懂的地方请指教为什么这个程序结果为 1...
你这个程序有错误:int& ra ;ra=a;应该改为:int & ra = a;因为引用必须在声明的时候初始化。那么什么是引用呢?说白了就是别名。给变量 ra 起个别名叫 a,所以 ra 和 a 都是对同一个变量的称呼,对应同一份内存。因此:ra==a\/\/ 对应同一份内存 &ra==&a\/\/ 对应同一个地址 sizeof(r...

C++程序运行出错。 请大侠帮忙!
不知道你是不是学生! 不过看你的程序觉得你实在是有必要看下基础的东西了! 还有调试程序需要耐性!首先 你得清楚char 和char* char[]之间的区别.其次 自己也在出错的地方看下!1.error C2629: unexpected 'class Teacher ('Teacher(char *a,char b,int c char d,char *e,char *f):Person(...

我编了一个C++程序,有错,请大师们指点指点
不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环。因此,任何编译系统都不做死循环检查。在设计程序时,若遇到死循环,我们可以通过按下Ctrl+Pause\/Break的方法,结束死循环。然而,在编程中死循环并不是一个需要避免的问题,相反,在实际应用中,经常需要用到死循环。例如...

编程入门就学c++结果好多概念都不知道怎么办
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os\/2,没有一个...

我是个女孩,正在学习c++,感觉非常吃力,求助各位高手,传授经验,到底应该...
我理解的C++程序,是由算法和语法构成。算法就是方法,就好像是数学中的函数,它是程序的核心,所以在写程序之前,你首先要明确程序的算法才行。语法相对来说比较简单,只要你平时好好看一些基础的书,应该问题不大。另外平时多注意搜集一些经典的程序,如用到for语句的杨辉三角,用到switch的输出一年12...

visual c++ 6.0中写好源程序后编译的时候有错误,怎么找错误的位置?_百 ...
打开错误列表窗口,路径:视图->其他窗口->错误列表 按F7编译,如果有错误会在错误列表中展示出来,鼠标双击错误项就会 跳转到对应的行。不过有些链接错误无法跳转不过根据错误信息能找到相应的函数或文件

c++分数类 ,下面代码哪里有问题呢?求高手解释
1)c没有赋初值 将约分函数里第一句改成 int c =1,min;即可 2)c的赋值不对,此处应该是\/\/c=(b\/c);不对,改为 c*=i;并放在循环的判断里边 更正后的程序 include <iostream> using namespace std;class fenshu{ public:int a,b;fenshu(int a,int b) { this->a=a;this->b=b;} v...

相似回答
大家正在搜