1、元素互换
定义一个整型数组num[10],随机初始化数组中元素值,然后将头尾元素两两互换,将交换后的数组值输出。
【代码】
#include <stdio.h>
int main(void)
{
int num[10] = {};
int i = 0;
int temp;
for(i = 0; i < 10; i++)
{
scanf("%d", &num[i]);
}
for(i = 0; i < 10 / 2; i++)
{
temp = num[i];
num[i] = num[9 - i];
num[9 - i] = temp;
}
for(i = 0; i < 10; i++)
{
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
2、矩阵翻转
定义一个二维数组a[3][4],随机初始化数组中的元素值,然后将a数组举证翻转后存入到b[4][3]中,并将b输出。
【分析】
输入:
3 5 1 4
7 2 6 8
0 9 4 6
输出:
3 7 0
5 2 9
1 6 4
4 8 6
【代码】
#include <stdio.h>
int main(void)
{
int a[3][4] = {};
int b[4][3] = {};
int i = 0;
int j = 0;
int temp;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
{
scanf("%d", &a[i][j]);
}
}
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
{
b[j][i] = a[i][j];
}
}
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
printf("%d ", b[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
3、围圈报数
有m个人围成一圈,开始报数,报到n,退出,问最后剩下的是几号。(从1号开始)
【分析】
将m个人存到一个数组a[m]中,并将其中的所有元素都记为1,当开始报数,报到n时,该人退出,即将该元素的值置为0。当报数报到数组的最后一个元素时,重新返回第一个元素报数。以此重复,直至剩下最后一个值为1的元素。
【代码】
#include <stdio.h>
int main(void)
{
int m = 0;//人数
int n = 0;//报数
int a[10] = {};
int i = 0, j = 0, k = 0;//k表示目前出圈的人数
// printf("input:");
scanf("%d %d", &m, &n);
// printf("input:");
for(i = 1; i <= m; i++)
{
a[i] = 1;
}
i = 1;
while(1)
{
if(a[i] == 1)
{
j++;
}
if(j == n)
{