列表

详情


SH11. 数据分页说明

描述

数据分页,对于指定的页数和每页的元素个数,返回该页应该显示的数据。

输入描述

第一行输入数据个数,第二行全部数据,第三行输入页数,第四行输入每页最大数据个数

输出描述

输出该页应该显示的数据,超出范围请输出'超过分页范围'

示例1

输入:

6
1 2 3 4 5 6
1
2

输出:

3
4

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 424KB, 提交时间: 2020-07-07

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	int n,i,index,m;
	scanf("%d",&n);
	int a[n];
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	scanf("%d",&index);
	scanf("%d",&m);
	for(i=index*m;i<(index+1)*m;i++)
		printf("%d\n",a[i]);
}

C 解法, 执行用时: 2ms, 内存消耗: 236KB, 提交时间: 2019-05-01

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int i, n, p, m;
    int *data = NULL;
     
    scanf("%d", &n);
    data = (int *)malloc(sizeof(int) * n);
    i = 0;
    while (i < n)
    {
        scanf("%d", &data[i]);
        i++;
    }
    scanf("%d", &p);
    scanf("%d", &m);
    if (m * p >= n) printf("超出分页范围");
    else
    {
        for (i = m * p; i < m * (p + 1) && i < n; i++)
        {
            printf("%d\n", data[i]);
        }
    }
    free(data);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 256KB, 提交时间: 2020-12-01

#include<stdio.h>
int main()
{
    int n,i,m,j,k;
    scanf("%d\n",&n);
    int a[n];
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    scanf("%d\n",&j);
    scanf("%d\n",&k);
    if(j*k>n)
        printf("超出分页范围");
    for(i=j*k;i<(j+1)*k;i++)
           printf("%d\n",a[i]);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 364KB, 提交时间: 2019-05-29

#include <stdio.h>
#include <string.h>
int main()
{
    int n;
    int a[100];
    int i;
    int number;	//页数 
    int m;	//每页的个数 
    int temp1,temp2; 
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    
    scanf("%d",&number);
    scanf("%d",&m);
    
    for(i=(number)*m;i<(number+1)*m;i++)
    {
    	if(number>n/m+1)
    	{
    		printf("超过分页范围\n");
    		break;
		}
		printf("%d\n",a[i]);
	}
    
}

C 解法, 执行用时: 2ms, 内存消耗: 372KB, 提交时间: 2020-04-06

#include<stdio.h>
 
int main()
{
    int n,p,c;
    int* num;
    scanf("%d",&n);
    num = (int*)malloc(n*sizeof(int));
    for(int i = 0;i< n;i++)
    {
        scanf("%d",&num[i]);
    }
    scanf("%d",&p);scanf("%d",&c);
    for(int i = p*c;i < (p+1)*c&& i<n;i++)
    {
        printf("%d\n",num[i]);
    }
    return 0;
}

上一题