20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises13
P239

/*
编写一程序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
图2 程序运行效果示例(读满16个数时的情况)
*/
#include <stdio.h>
#define N 16
int main(void)
{
int data[N];
int i;
int count = 0; // 从0开始计数
int realNumber;
printf("请输入若干个数: ");
for (i = 0; i < N; i++)
{
scanf("%d", &data[i]);
if (data[i] == -1)
{
break;
}
count++; // 计数器,只拿-1之前的数来计数
}
// 是否满16个数,注意,数组的下标是从0开始的,到realNumber-1
realNumber = count < N ? count : N;
// 输出
printf("\n这些数倒序为: ");
for (i = realNumber - 1; i >= 0; i--)
{
printf(" %d", data[i]);
}
return 0;
}
P704

/*
编写一程序P704.C实现以下功能
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。
从键盘输入一个正整数(约定该数≤32767、此时因子数≤100),找出该数以内的所有完数及其因子。
编程可用素材:
printf("Please input