3.9 KiB
3.9 KiB
tags, aliases, 日期
| tags | aliases | 日期 | ||
|---|---|---|---|---|
|
empty | 2026/1/29 |
1.定义一个长度为10的数组并从键盘输入10个整数对数组进行赋值,并实现下列功能
- 判定该数组是否有序
- 若无序则将数组中的数据进行排序
- 找出数组中是否存在众数并输出结果
#include <stdio.h>
void bubble_sort(int arr[],int lenth)
{
for(int i = 0;i < lenth;i++){
for(int j = i+1;j < lenth;j++){
if(arr[i] > arr[j]){
arr[i] ^= arr[j];
arr[j] ^= arr[i];
arr[i] ^= arr[j];
}
}
}
}
int sort_check(int arr[],int lenth)
{
int count = 0,fcount=0;
for(int i=0,j=1;i<lenth-1;i++,j++){
if(arr[i] >= arr[j])
count++;
if(arr[i] <= arr[j])
fcount++;
}
if(count == lenth-1 || fcount == lenth-1)
return 1;
else
return 0;
}
void find_mode(int arr[], int length)
{
int count[10] = {0};
int max_freq = 1;
for (int i = 0; i < length; i++) {
if (count[i] != -1) {
int freq = 1;
for (int j = i + 1; j < length; j++) {
if (arr[i] == arr[j]) {
freq++;
count[j] = -1;
}
}
count[i] = freq;
if (freq > max_freq) {
max_freq = freq;
}
}
}
printf("数组众数结果:");
int has_mode = 0;
for (int i = 0; i < length; i++) {
if (count[i] == max_freq) {
if (has_mode) printf("、");
printf("%d(出现%d次)", arr[i], max_freq);
has_mode = 1;
}
}
if (max_freq == 1) {
printf("所有元素均仅出现1次,无有效众数\n");
} else {
printf("(最大频次:%d)\n", max_freq);
}
}
int main(int argc, char const *argv[])
{
int arr[10];
int mode;
printf("输入10个数:");
for(int i=0;i<10;i++)
scanf("%d",&arr[i]);
if(sort_check(arr,10))
printf("已排序\n");
else{
printf("未排序\n");
bubble_sort(arr,10);
printf("排序后为:");
for(int i=0;i<10;i++)
printf("%d ",arr[i]);
printf("\n");
}
find_mode(arr,10);
return 0;
}
- 计算矩阵对角元素的和
- 判断矩阵是否是对称矩阵
#include <stdio.h>
#define ROW 3
#define COL 3
int calcDiagSum(int matrix[ROW][COL])
{
int sum = 0;
for (int i = 0; i < ROW; i++) {
sum += matrix[i][i];
}
return sum;
}
int isSymmetricMatrix(int matrix[ROW][COL])
{
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (matrix[i][j] != matrix[j][i]) {
return 0;
}
}
}
return 1;
}
int main(int argc, char const *argv[])
{
int matrix[ROW][COL];
printf("请输入3x3矩阵的9个整数:\n");
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
scanf("%d", &matrix[i][j]);
}
}
int diagSum = calcDiagSum(matrix);
printf("\n矩阵主对角线元素的和为:%d\n", diagSum);
if (isSymmetricMatrix(matrix))
printf("该3x3矩阵是对称矩阵\n");
else
printf("该3x3矩阵不是对称矩阵\n");
return 0;
}
3.小张作为公司的HR设计了一个年会游戏,来观察员工的团队协作能力、测试员工在压力下的决策能力,寻找潜在的项目领导者,现在有N名员工参与并围坐一圈,游戏规则如下:
- 从某位员工开始顺时针报数
- 报到数字M的倍数员工被淘汰出局
- 从下一位员工继续报数,重复步骤2
- 游戏继续直到只剩下K名员工(获胜者)
4.小刘作为公司的技术骨干编写了一个程序,帮助他每次都能处在胜利者中并最终获得晋升资格,请你使用C语言编程复现小刘的程序实现以下功能:
- 输入总人数N、报数间隔M和获胜人数K
- 计算并输出安全的座位位置(最后剩下的K人)
