题目:
从标准输入读取5个整数,将它们逆序存储到一个数组中,并立即将数组中的值(按原顺序,而不是逆序)打印到标准输出
实现思路:
- 初始化:
- 定义一个大小为5的整型数组
a
,并初始化所有元素为0。- 定义两个整型变量
i
和num
,用于循环控制和读取输入。- 逆序读取输入:
- 使用一个
for
循环从0到4(包含0,不包含5),循环5次。- 在每次循环中,通过
scanf
函数从标准输入读取一个整数,并将其存储在变量num
中。- 然后,将
num
的值赋给数组a
的4-i
位置。这里利用了数组索引的特性,使得输入的数字以逆序的方式存储在数组中。- 按顺序打印数组:
- 使用另一个
for
循环从0到4(包含0,不包含5),循环5次。- 在每次循环中,通过
printf
函数打印数组a
中当前i
位置的值。- 由于数组
a
中的值在读取时是以逆序存储的,但打印时是按照数组索引的顺序进行的,因此输出的结果将是原序的整数序列。
代码:
#include <stdio.h>
int main() {
int a[5]={}, i, num; // 定义一个包含5个元素的整型数组a,并初始化为0。同时定义整型变量i和num。
// 使用for循环读取用户输入的5个整数
for(i=0; i<5; i++){
scanf("%d", &num); // 从标准输入读取一个整数,并保存到变量num中
a[4-i] = num; // 将读取到的整数num逆序存储到数组a中
}
// 使用for循环打印数组a中的元素
for(i=0; i<5; i++)
printf("%d", a[i]); // 打印数组a中索引为i的元素
return 0; // main函数返回0,表示程序正常结束
}
解读:
#include <stdio.h>
:包含标准输入输出头文件,以便使用scanf
和printf
等函数。
int main() { ... }
:程序的主入口点。
int a[5]={}, i, num;
:
int a[5]={}
:定义一个整型数组a
,包含5个元素,并初始化为0。int i, num;
:定义两个整型变量i
和num
,分别用于循环控制和存储输入的整数。第一个
for
循环:
for(i=0; i<5; i++)
:循环5次,i
的值从0递增到4。scanf("%d", &num);
:从标准输入读取一个整数,并保存到变量num
中。a[4-i] = num;
:将num
的值逆序存储到数组a
中。例如,当i
为0时,a[4]
被赋值;当i
为1时,a[3]
被赋值,依此类推。第二个
for
循环:
for(i=0; i<5; i++)
:循环5次,i
的值从0递增到4。printf("%d", a[i]);
:打印数组a
中索引为i
的元素。由于数组在输入时被逆序存储,但这里按照顺序打印,所以输出的整数顺序与输入顺序相同。
return 0;
:表示程序正常结束。