| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:输入学生信息后,然后进行排序,然后输入,为什么会出错
取消只看楼主 加入收藏
laotianshun
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
输入学生信息后,然后进行排序,然后输入,为什么会出错
#include <stdio.h>
#include <malloc.h>
struct Student//定义一个结构体
{
        int age;
        char name[100];
        float score;
        
};

        
int main (void)
{
        int len;
        int i,j;
        struct Student t;                                           //parr[j]不是int类型,所以t不能是int类型
        struct Student *parr;                                       //定义一个struct Student *类型的指针变量 parr
        printf("请输入有多少个学生\n");
        printf("个数:");
        scanf("%d",&len);                                         
        parr=(struct Student *)malloc(len*sizeof(struct Student));   //定义一个动态数组
                                                                                                                          
        for (i=0;i<len;i++)                                         //for循环输入学生的信息
        {
                printf("请输入第%d个学生的信息:\n",i+1);

                printf("age=");
                scanf("%d",&parr.age);

                printf("name=");
                scanf("%s",parr.name);

                printf("score=");
                scanf("%f",&parr.score);
        }


        for (i=0;i<len-1;i++)     //冒泡排序
        {
                for (j=0;i<len-1-i;j++)
                {
                        if (parr[j].score > parr[j+1].score)     //比较的是struct Student里的成绩,不是整个struct Student里的内容
                                {
                                                t = parr[j];          //parr[j]不是int类型,所以t不能是int类型
                                  parr[j] = parr[j+1];
                                        parr[j+1] = t;               //当成绩比较完后,把分数高的“整体”和分数低的“整体”互换
                                }                                 
                        }
                }
        
        printf("\n\n学生的信息:\n");


        for (i=0;i<len;i++)                  //for循环输出学生的信息
        {
                printf("以下是第%d学生的信息\n",i+1);
                printf("age\n",parr.age);
                printf("name\n",parr.name);
                printf("score\n",parr.score);
        }

return 0;
}

  
图片附件: 游客没有浏览图片的权限,请 登录注册



能不能把“for循环输入输出学生的信息”还有“排序”用函数去写?
变成
#include <stdio.h>
#include<malloc.h>
void for1()
{
}
void paixu()
{
}
void for2()
{
}
int main (void)
{
……………………
  for1();
  paixu();
  for2();
  return 0;
}
搜索更多相关主题的帖子: 学生 信息 include 结构体 
2013-04-26 20:08
快速回复:输入学生信息后,然后进行排序,然后输入,为什么会出错
数据加载中...
 
   



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

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