ylxd41 2016-12-09 06:15 采纳率: 50%
浏览 840
已采纳

求教各位,关于c语言的结构与指针的问题

图片说明

图片说明

图片说明
我想通过声明一个指针int*p;来指向结构stu[0].deadline,并通过p+1,p+2,的形式f分别指向stu[0].deadline,stu[1].deadline,stu[2].deadline.
不知道应该怎么声明和使用这个指针,是hotel*p还是int*p,如果是hotel*p的话应该怎么达到该效果。

代码如下:(传上去格式就没了,而且容易丢东西,麻烦看看照片)

// 房间安排.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

int maopao(int*p,int n);
int _tmain(int argc, _TCHAR* argv[])
{
int s=0;
int n=0;
int i=0;
struct hotel
{
int room;
int date;
int during;
int deadline;
};
hotel stu[10000];
printf("请输入测试数据组数:\n");
scanf("%d",&n);
printf("请输入每组的订单数:\n");
scanf("%d",&s);
while(n--)
{
for(i=0;i {
scanf("%d",&stu[i].room);
scanf("%d",&stu[i].date);
scanf("%d",&stu[i].during);
stu[i].deadline=stu[i].date+stu[i].during;
}
for(int y=0;y {
for(int u=0;u {
if(stu[u].date>stu[u+1].date)
{
hotel temp=stu[u];
stu[u]=stu[u+1];
stu[u+1]=temp;
}
}
}
int*p;
p=; //此处已经将结构按起始日期从大到小进行排序了4 9 6 3 10 4 3,12,6
int re=maopao(p,s);

int w=0;
int total;
while(w {
if(stu[w].date total=total+stu[w].room;
if(stu[w].date>=re&&total>stu[w].room)
total=total+0;
if(stu[w].date>=re&&total<stu[w].room)
total=stu[w].room;
w++;
}
printf("%d\n",total);
}
return 0;

}

int maopao(int*p,int n)
{
for(int i=0;i for(int q=0;q {
if(*(p+q)>(p+q+1))
{
int num=
(p+q);
(p+q)=(p+q+1);
*(p+q+1)=num;
}
}
return *(p+0);
}

  • 写回答

3条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2016-12-09 06:29
    关注

    类似于如下

     struct Hotel{
        int deadLine;
    };
    int _tmain(int argc, _TCHAR* argv[])
    {
        Hotel *hotel = new Hotel[10];
        for(int i =0;i<10;i++)
        {
            hotel[i].deadLine = i;
        }
        //第一个
        hotel++;
        printf("hotel->deadLine",hotel->deadLine) ;
        //第二个
        hotel++;
        printf("hotel->deadLine",hotel->deadLine) ;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 请教一下c语言的代码里有一个地方不懂
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了