鱼C论坛

 找回密码
 立即注册
查看: 2023|回复: 10

[已解决]刚刚注册就来求助真不好意思,先谢谢了。

[复制链接]
发表于 2017-12-16 16:39:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一个c语言的问题。
        查询功能:输入姓名,查询其成绩
        输入的成绩为:67 84 72 54 60 77 92 42 81 90 62 81 91 58 82       

学号        姓名
01        周一清
02        任齐
03        唐经济
04        陈有秀
05        朱成
06        陈特
07        周凯
08        苏英华
09        徐英
10        周明成
11        赵中一
12        李新
13        李长表
14        朱清华
15        陈中俊

查询语句该怎么写呢?
最佳答案
2017-12-16 20:09:26
这要看你的数据是怎么存的。比如你用两个数组来存,一个放名字,一个放成绩,让下标对应起来。你要查谁的成绩你就先拿到这个人名字的下标,然后就可以拿到成绩了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-16 17:07:30 From FishC Mobile | 显示全部楼层
用数组存储数据,然后用下标索引或者switch判断输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 20:09:26 | 显示全部楼层    本楼为最佳答案   
这要看你的数据是怎么存的。比如你用两个数组来存,一个放名字,一个放成绩,让下标对应起来。你要查谁的成绩你就先拿到这个人名字的下标,然后就可以拿到成绩了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-16 20:21:28 | 显示全部楼层
scanf(“%c”,&name);
for(i=0;i<length;i++)
     if(student[i][0]==name)
           printf("%c",student[i][1]);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-16 22:33:21 | 显示全部楼层
BngThea 发表于 2017-12-16 17:07
用数组存储数据,然后用下标索引或者switch判断输入

额,好像你理解错了, 不过谢谢了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-17 12:36:13 | 显示全部楼层
志华 发表于 2017-12-16 20:09
这要看你的数据是怎么存的。比如你用两个数组来存,一个放名字,一个放成绩,让下标对应起来。你要查谁的成 ...

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
        int i,j,k;
        char name[15][7] = {"周一清","任齐","唐经济","陈有秀","朱成","陈特","周凯","苏英华","徐英","周明成","赵中一","李新","李长表","朱清华","陈中俊"};
        int cj[15];       
        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[k][0]==find)
                 i=k;
        {         j=i;
            printf("你的成绩是:%d\n",cj[j]);
        }       
                }
        return 0;
}
大神,能看看我的哪里写错了吗,这程序按我的思路是:我先输入了67  84 72 54 60 77 92 42 81 90 62 81 91 58 82 这15个成绩,然后我输入要查询:朱成  ,按理说应该输出成绩是60啊,可是不对啊。
先拜谢了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-19 20:41:04 | 显示全部楼层
只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {

我哪里是大神呀,我都不会C。是不是输入的名字有问题,char是一个字节还是两个字节来着,放不下两个中文吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-19 20:45:54 | 显示全部楼层
只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {

还有成绩输入的那个地址是不是也写错了?你那样是一直往第一个写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 19:22:54 | 显示全部楼层
只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {

char find 没有初始化 内存  你 编译都不会通过的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 19:23:59 | 显示全部楼层
只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {

还有就是 if  判断 你是两个 char 字符串  直接拿   ==  符号是无法进行 判断的编译会不通过的 用strcmp 进行比对!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-21 22:09:53 | 显示全部楼层
1513865340(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 20:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表