poj1547---结构数组

题意:老师发给每个学生的橡皮泥相同,找出谁抢了谁的橡皮泥

思路:结构数组存储每个学生的橡皮总量,和名字

/*   结构数组存储用户信息--只放名称和体积
    while输入循环复用长宽高变量
    for循环求所有体积和
    求出平均值
    for循环遍历部分结构数组用输入的n决定次数
    遇到结构中小于平均值,将这个结构中的名字串
    付到vicim[]
    遇到大于的,将这个结构中名称付给bully[]
    printf("bully took clay from victim.\n") */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct per{
    int volume;
    char name[10];
};
int main()
{
    int n,i;
    struct per classStudentInfo[9];
    char bully[10],victim[10];
    while(scanf("%d",&n)!=EOF)
    {
        int len,wid,hei,th=0,temp;
        if(n==-1)
            break;
        temp=n;
        while(n--)
        {
            scanf("%d %d %d %s",&len,&wid,&hei,classStudentInfo[th].name);
            classStudentInfo[th].volume=len*wid*hei;
            th++;
        }
        int sumOfVol=0;
        for(i=0;i<temp;i++)
        {
            sumOfVol+=classStudentInfo[i].volume;
        }
        int averOfvol=sumOfVol/temp;
        for(i=0;i<temp;i++)
        {
            if(classStudentInfo[i].volume>averOfvol)
                strcpy(bully,classStudentInfo[i].name);
            if(classStudentInfo[i].volume<averOfvol)
                strcpy(victim,classStudentInfo[i].name);
        }
        printf("%s took clay from %s.\n",bully,victim);
    }
    return 0;
}

  

时间: 2024-12-19 20:33:53

poj1547---结构数组的相关文章

C#中自定义类数组和结构数组的使用

如有雷同,不胜荣幸,若转载,请注明 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一个自定义数组,既方便又节省时间,以下是类数组,其实相当于定义了一个实体类一样,只是使用的时候写成数组的形式在用 Class RGB { public byte red; public byte green; public byte blue; public RGB(byte r,byte g,byte b) { this.red =

结构体与共用体——指向结构数组的指针

指针变量可以指向一个结构数组,这时结构指针变量的值是整个结构数组的首地址. 结构指针变量也可指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址. 设ps为指向结构数组的指针变量,则ps也指向该结构数组的0号元素,ps+1指向1号元素,ps+i则指向i号元素. 这与普通数组的情况是一致的. [例11.6]用指针变量输出结构数组. struct stu { int num; char *name; char sex; float score; }boy[5]={ {101,"Zho

MATLAB中的结构数组

MATLAB中的结构数组 结构数组: 结构是包含一组记录的数据类型,而记录则是存储在相应的字段中.结构的字段可以是任意一种MATLAB数据类型的变量或者对象.结构类型的变量也可以是一维的.二维的或多维的数组.结构数组也称为架构数组.不过,在访问结构类型数据的元素时,需要使用下标配合字段的形式. 可以在一个数组中放置各类的数据,并且一个结构数组还能是另一个结构数组的一部分.相比较而言,比元胞数组更为强大,也更加富于变化. (1)直接赋值法创建结构数组 >> employee.name='tige

线性存储结构--数组

#include<stdio.h> #include<stdlib.h> //定义了一个数据类型叫struct Arr 该数据类型包含 3个成员 struct Arr{ //12个字节 int *pBase;//存储数组第一个元素的地址 int len;//数组所能容纳的最大元素个数 int cnt;//当前数组有效元素的个数 }; //不用指针 用值得话 导致方法里存在局部变量 不能使主方法的改变 只能传地址 void Init_arr(struct Arr *p,int len

5-1-数组的顺序存储结构-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 数组的顺序存储结构 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h        相关测试数据下载  链接? 无数据

线性结构-数组和链表的实现

连续存储(数组) 1.什么叫数组? 元素的类型相同,大小相等. 2.优缺点? 查询速度快,增加删除慢 #include <stdio.h> #include <malloc.h> #include <stdlib.h> //定义一个数据类型,名字 Arr,成员分别 struct Arr { int * pBase; //存储的是数组第一个元素的地址 int len; //数组的长度 int cnt; //当前数组有效元素的个数 int increment; //自动增长

数据结构 线性结构(数组[列表] ,链表 单链表的增删改查**, 线性结构的应用 队列 栈[函数的调用**]),非线性结构 树

数据结构 参考:http://lupython.gitee.io/ 线性结构 就是能够用一根线串起来的数据结构 数组 (列表) 问:申请数组的前提条件是啥? a[12]?内存需要满足的条件? 答:内存必须有一块连续的内存空间 int a[7] : 声明一个数组,这个数组的数组名是 a, 数组的大小是 7, 数组元素的类型是整型. int a[7] = array(1,2,3,4,5,6,7) 问:如何申请内存? 答:C,C++语言,申请:mallco (28).释放:free(28) 问:int

原始线性结构数组的实现以及操作

不多说直接上代码: #include <stdio.h> #include <malloc.h> #include <stdlib.h> struct Arr { int *pBase; int len; int cnt; }; void init_arr(struct Arr *pArr,int length);//初始化一个数组 void show_arr(struct Arr *pArr);//显示某一个数组 bool isEmpty(struct Arr *pA

线性结构 —— 数组队列

一.介绍 ?队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头. 二.代码 ?使用数组模拟队列,首先编写一个ArrayQueue类 class ArrayQueue { private int maxSize; // 最大容量 private int front; // 指向队列头 private int rear; // 指向队列尾 p

NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构

本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存对齐.Numpy内存结构 一.多维数组的存取 多维数组的存取和一维数组类似,因为多维数组有多个轴,因此它的下标需要用多个值来表示,NumPy采用组元(tuple)作为数组的下标.如二维数组需要(x, y)的元组标记一个数组元素:三维数组需要(x, y, z)的元组标记一个元素. 如下图所示,a为一个6x6的二