只有汝丶 发表于 2017-12-16 16:39:52

刚刚注册就来求助真不好意思,先谢谢了。

一个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        陈中俊

查询语句该怎么写呢?

BngThea 发表于 2017-12-16 17:07:30

用数组存储数据,然后用下标索引或者switch判断输入

志华 发表于 2017-12-16 20:09:26

这要看你的数据是怎么存的。比如你用两个数组来存,一个放名字,一个放成绩,让下标对应起来。你要查谁的成绩你就先拿到这个人名字的下标,然后就可以拿到成绩了。

lifeisshort 发表于 2017-12-16 20:21:28

scanf(“%c”,&name);
for(i=0;i<length;i++)
   if(student==name)
         printf("%c",student);

只有汝丶 发表于 2017-12-16 22:33:21

BngThea 发表于 2017-12-16 17:07
用数组存储数据,然后用下标索引或者switch判断输入

额,好像你理解错了, 不过谢谢了,

只有汝丶 发表于 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 = {"周一清","任齐","唐经济","陈有秀","朱成","陈特","周凯","苏英华","徐英","周明成","赵中一","李新","李长表","朱清华","陈中俊"};
        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啊,可是不对啊。
先拜谢了,

志华 发表于 2017-12-19 20:41:04

只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {


我哪里是大神呀,我都不会C{:10_269:}。是不是输入的名字有问题,char是一个字节还是两个字节来着,放不下两个中文吧

志华 发表于 2017-12-19 20:45:54

只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {


还有成绩输入的那个地址是不是也写错了?你那样是一直往第一个写

新建word 发表于 2017-12-20 19:22:54

只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {


char find 没有初始化 内存你 编译都不会通过的!

新建word 发表于 2017-12-20 19:23:59

只有汝丶 发表于 2017-12-17 12:36
#include
#include
int main(int argc, char *argv[]) {


还有就是 if判断 你是两个 char 字符串直接拿   ==符号是无法进行 判断的编译会不通过的 用strcmp 进行比对!

無聊 发表于 2017-12-21 22:09:53

页: [1]
查看完整版本: 刚刚注册就来求助真不好意思,先谢谢了。