一个c语言问题,新手
#include <stdio.h>#include <stdlib.h>
int main(int argc, char *argv[]) {
int i,j,k;
char name = {"周一清","任齐","唐经济","陈有秀","朱成","陈特","周凯","苏英华","徐英","周明成","赵中一","李新","李长表","朱清华","陈中俊"};
int cj;
printf("输入成绩:");
for(i=0;i<15;i++){
scanf("%d",&cj); //{67,84,72,54,60,77,92,42,81,90,62,81,91,58,82};
}
//查找
char find;
printf("输入查询学生的姓名:"); scanf("%s",&find);
for(k=0;k<15;k++);{
if(name==find)
i=k;
{ j=i;
printf("你的成绩是:%d\n",cj);
}
}
return 0;
}
能看看我的哪里写错了吗,这程序按我的思路是:我先输入了6784 72 54 60 77 92 42 81 90 62 81 91 58 82 这15个成绩,然后我输入要查询:朱成,按理说应该输出成绩是60啊,可是不对啊。
先拜谢了, 1 成绩录入应该依次写入,而不是全部交给&cj,改为:
scanf("%d",&cj);
2 一个字符变量find如何能存放%s?你可以改为字符指针
char * find
3 scanf输入需要清除流里面的信息
4 最后的判断不能用==判断字符串的相等,用strcmp函数 BngThea 发表于 2017-12-18 13:52
1 成绩录入应该依次写入,而不是全部交给&cj,改为:
scanf("%d",&cj);
我还是不懂你的意思,我改了程序无法运行了, {:9_230:} 只有汝丶 发表于 2017-12-18 15:06
我还是不懂你的意思,我改了程序无法运行了,
{:10_285:}哪一句不理解
出错未必是件坏事,理解透就好 BngThea 发表于 2017-12-18 15:24
哪一句不理解
出错未必是件坏事,理解透就好
我按你的意思就改成这样了,运行的输入名字就出错了,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
int i,j;
char name[] = "'周一清','任齐','唐经济','陈有秀','朱成','陈特','周凯','苏英华','徐英','周明成','赵中一','李新','李长表','朱清华','陈中俊'";
char cj;
printf("输入成绩:"); scanf("%d",&cj); //{67,84,72,54,60,77,92,42,81,90,62,81,91,58,82};
//查找
char * find;
printf("输入查询学生的姓名:"); scanf("%s",&find);
for(i=0;i<15;i++);{
if(strcmp(name,find)==0)
{
printf("你的成绩是:%d\n",cj);
}
}
return 0;
} find已经是指针了,scanf中不需要再取地址 BngThea 发表于 2017-12-18 15:40
find已经是指针了,scanf中不需要再取地址
scanf("%s",find); 这样吗?
但是好像没什么用, 因为你没有声明这是一个字符串,而只是一个字符指针
如果要达到你的目的,就用字符数组
char find = {0};
scanf("%s",find) BngThea 发表于 2017-12-18 16:21
因为你没有声明这是一个字符串,而只是一个字符指针
如果要达到你的目的,就用字符数组
char find = { ...
谢谢指教了, {:5_106:}
RE: 一个c语言问题,新手
只有汝丶 发表于 2017-12-18 16:51谢谢指教了,
我百度了很多,也试过了,还是不行,所以再来请教一下,
就是最后查询成绩那,不能返回成绩
应该怎么写呢?{:9_233:} 只有汝丶 发表于 2017-12-18 18:02
我百度了很多,也试过了,还是不行,所以再来请教一下,
就是最后查询成绩那,不能返回成绩
应该怎么写 ...
cj在录入的时候就要下标索引,我的第一条回复就说了
页:
[1]