20251期《C语言程序设计B》专项训练01-数组01部分-程序P239.C

33 阅读1分钟

题面

/*
编写一程序P239.C实现以下功能
  先从键盘读入若干个整数(读到-1或读满16个数均结束读入),然后倒序输出这些数。编程可用素材:
printf("请输入若干个数: ");
printf("\n这些数倒序为: ");
  程序的运行效果应类似地如图1所示,图1中的1 2 3 4 5 6 7 8 9 20 11 12 -1 13和图2中的1 31 3 4 5 6 7 8 21 10 11 12 13 14 15 16 17 18是从键盘输入的内容。
请输入若干个数: 1 2 3 4 5 6 7 8 9 20 11 12 -1 13

这些数倒序为: 12 11 20 9 8 7 6 5 4 3 2 1

图1 程序运行效果示例(读到-1时的情况)

请输入若干个数: 1 31 3 4 5 6 7 8 21 10 11 12 13 14 15 16 17 18

这些数倒序为: 16 15 14 13 12 11 10 21 8 7 6 5 4 3 31 1
*/

解答

#include<stdio.h>

int main(void)
{
	int data[16],i,j;
	
	printf("请输入若干个数: ");
	
	// 输入,正常完成,则i正好是有效输入的个数
	i=0;
	do{
		scanf("%d",&data[i]);
		if(data[i]==-1)
		{
			break;
		}
		i++;
	}while(i<16);
	
	// 注意下标的表示,倒序使用下标即可
	printf("\n这些数倒序为: ");
	for(j=i;j>0;j--)
	{
		printf("%d ",data[j-1]);
	}
	
	return 0;
}

知识点

  1. 如何完成输入若干个数
  2. 有个数限制,有个别特殊输入的判断
  3. 使用do...while语句完成输入,配合break达到要求
  4. 使用直标操作的方式,完成数组的倒序遍历