C语言一维数组练习2

Problem A:向后转

题目描述
体育课要开始啦,在体育课之前必不可少的就是整队。一开始,全班同学都按身高排成了一列纵队,可是不巧的是,同学们都背对着体育老师,这个时候,只见体育老师深吸一口气,大声地喊了一句:“向后转!”
小吴是一名小小程序猿,看到这样的场景,他不禁想到了一个问题,假设在老师喊口号之前,班长已经面对纵队的第一位同学,按顺序依次记录了每个同学的学号,那么,老师喊口号之后,学号的顺序又是怎样的呢?

输入

第一行包括一个数n,表示班级里有n位学生,班级人数至少是1,不超过100。第二行包括n个数,表示每个同学的学号。

输出

请按顺序输出向后转后每位同学的学号,用逗号隔开。

样例输入

5
2017010394 2017010432 2017010422 2017010373 2017010410

样例输出

2017010410,2017010373,2017010422,2017010432,2017010394

答案

#include<stdio.h>
#define N 100
int main(){
   
	long int a[N];
	int i,j,n;
	scanf("%d",&n);
	for(i=0;i<n;i++){
   
		scanf("%ld",&a[i]);
	}
	for(i=n-1;i>=1;i--){
   
		printf("%ld,",a[i]);
	}
	printf("%ld",a[0]);
}

Problem B:分两列

题目描述
一列纵队在上课的时候会造成很大的麻烦,体育老师常用的办法就是让同学们1、2报数,然后报2的同学向后退一步。现在我们已经知道一列纵队时候同学的学号分布,那么你能输出分成两列后同学的学号么?

输入

第一行包括一个数n,表示班级里有n位学生,班级人数至少是1,不超过100。第二行包括n个数,表示一列纵队时每个同学的学号。

输出

请按顺序输出分开两列后两列每位同学的学号,用空格隔开。每列同学占两行,报1的同学在第1行。

样例输入

5
2017010394 2017010432 2017010422 2017010373 2017010410

样例输出

2017010394 2017010422 2017010410
2017010432 2017010373

答案

#include<stdio.h>
#define N 100
int main(){
   
	long int a[N];
	int i,j,n;
	scanf("%d",&n);
	for(i=0;i<n;i++){
   
		scanf("%ld",&a[i]);
	}
	for(i=0;i<=n-1;i+=2){
   
		printf("%ld ",a[i]);
	}
	printf("\n");	
    for(i=1;i<=n-1;i+=2){
   
		printf("%ld ",a[i]);
	}
}

Problem C:春游啦

题目描述
可以去春游啦!同学们别提多高兴了!老师说,单独行动有点危险,那么我们还是结伴同行吧。结伴的规则是这样的:排在最前的一个人和排在最后的那个人结成同伴,排在第2个的与排在倒数第2个的结成同伴…依次类推,2个一组成同伴。好,请马上排出来吧!老师语音一落,同学们“唰唰唰”很快结伴好了,准备出发喽!

输入

第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。 第二行n个整数表明n个同学的学号,学号之间有一个空格。

输出

共n/2行,每行二个整数,表明结伴同学的学号,两个学号之间有一个空格。

样例输入

6
5 6 4 12 3 2

样例输出

5 2
6 3
4 12

答案

#include<stdio.h>
#define N 50
int main(){
   
	long int a[N];
	int i,j,n;
	scanf("%d",&n);
	for(i=0;i<n;i++){
   
		scanf("%ld",&a[i]);
	}
	for(i=0,j=n-1;i<j;i++,j--){
   
		printf("%ld %ld\n",a[i]
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值