| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1181 人关注过本帖
标题:C语言,新手练习题,求大神指教数组应用的
只看楼主 加入收藏
难见红豆
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-12-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
C语言,新手练习题,求大神指教数组应用的
使用字符数组和实型数组分别存储学生姓名跟成绩,并通过对学生成绩的排序,按照名词输出字符数组中对应的学生姓名。
我自己编的如下
#include<stdio.h>                            /*a[5]存储学生姓名,b[5]存储学生成绩,e[1]为中间量*/

int main()
{
    char*a[5];
    char*e[1];
    int b[5];
    int c,d,i,j;
    for(i=0;i<5;i++)
    {printf("请输入学生姓名:\n");
    scanf("%s\n",&a[i]);
    }
    for(i=0;i<5;i++)
    {
        printf("请输入对应学生的成绩:\n");
        printf("%s:%d\n",a[i],b[i]);
        scanf("%d\n",&b[i]);
    }
    for(i=0;i<4;i++)
    {
        c=b[i];e[0]=a[i];d=i;
        for(j=i+1;j<5;j++)
        {
            if(b[j]>c)
            {
                c=b[j];
                d=j;
                e[0]=a[j];
            }
            b[d]=b[i];
            b[i]=c;
            a[d]=a[i];
            a[i]=e[0];
        }
    }
    for(i=0;i<5;i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: 数组 学生 成绩 for i++ 
2017-12-05 13:14
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:20 
char *a[5];
scanf("%s\n",&a[i]);
a数组只是声明了5个地址,还没有定义,即没有确定的地址。
试试:
#include <stdio.h>
int main()
{
    char a[5][10], *p[5], *pt;
    int b[5], bt, i, j;
    for(i=0; i<5; i++)
    {
        printf("请输入学生%d姓名: ", i+1);
        scanf("%s", a[i]);
        p[i] = a[i];
    }
    printf("请输入对应学生的成绩:\n");
    for(i=0; i<5; i++)
    {
        printf("%s: ", a[i]);
        scanf("%d", &b[i]);
    }
    for(i=0; i<4; i++)
    {
        for(j=i+1; j<5; j++)
        {
            if(b[j]>b[i])
            {
                bt= b[i];
                b[i] = b[j];
                b[j] = bt;
                pt = p[i];
                p[i] = p[j];
                p[j] = pt;
            }
        }
    }
    for(i=0; i<5; i++)
    {
        printf("%s %d\n",p[i],b[i]);
    }
    return 0;
}
2017-12-05 15:16
难见红豆
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-12-5
收藏
得分:0 
谢谢大神,估计是我买的书是最初级的,里面没有你提到的定义数组地址的知识,我回去再好好翻翻书看看是不是我漏掉了,谢谢,
2017-12-05 17:57
难见红豆
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-12-5
收藏
得分:0 
回复 2楼 吹水佬
您给的代码中char a[5][10],*p[5],*pt这段是什么意思,有什么用啊?为什么要定义一个二维字符数组?小白求解答!
2017-12-05 18:13
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:0 
以下是引用难见红豆在2017-12-5 18:13:40的发言:

您给的代码中char a[5][10],*p[5],*pt这段是什么意思,有什么用啊?为什么要定义一个二维字符数组?小白求解答!

二维字符数组是定义存放5个姓名的地方
2017-12-05 20:03
快速回复:C语言,新手练习题,求大神指教数组应用的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015800 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved