当前位置: 首页 > article >正文

练习题:一维数组

练习题

第一题

键盘录入一组数列,利用冒泡排序将数据由大到小排序

代码

#include <stdio.h>

int arr_home01()
{

  int arr[10];
  int i,j,temp;

  printf("请输入10个测试整数:\n");

  int len = sizeof(arr) / sizeof(arr[0]);

  for(i = 0;i < len;i++)
  {
    scanf("%d",&arr[i]);
  }
  printf("\n");

  for(i = 0;i < len - 1;i++)
  {
    for(j = 0;j < len - 1 - i;j++)
    {
      if (arr[j] < arr[j+1])
      {
        temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
      }
    }
  }
  printf("冒泡排序遍历数组:\n");

  for (i = 0; i < len; i++)
  {
    printf("%-4d",arr[i]);
  }
  printf("\n");
}
int main(int argc,char *argv)
{
    arr_home01();
    return 0;
}

运行结果

在这里插入图片描述

第二题

从键盘输入年、月、日,计算并输出该日是该年第几天

代码

include <stdio.h>

int main(int argc,char *argv[])
{

    int year,month,day,sum,k;

    int t[] = {31,28,31,30,31,30,31,31,30,31,30,31};

    printf("请输入年、月、日:\n");
    scanf("%d-%d-%d",&year,&month,&day);

    if ((year % 4 == 0 && year %100 != 0) || year % 400 == 0)
    {
      t[1] = 29;
    }

    sum = day;

    for(k = 0;k < month - 1;k++)
    {
      sum += t[k];
    }

    printf("%d月%d日是%d年的第%d天。\n",month,day,year,sum);
    
    return 0;
}

运行结果

在这里插入图片描述

第三题

键盘录入一组数列,求最大数、最小数、均值

代码

#include <stdio.h>

int main(int argc, char *argv[])
{
  int arr[10];
  int i, n, max, min, average;
  int sum = 0;

  printf("请输入数列的长度:\n");
  scanf("%d", &n);

  if (n <= 0 || n > 5)
  {
    printf("输入的长度无效,请输入1~20的整数!\n");
    return 1;
  }

  printf("请输入数列中的数:\n");

  for (i = 0; i < n; i++)
  {
    printf("第%d个数:", i + 1);
    scanf("%d", &arr[i]);
  }

  for (int i = 0; i < n; i++)
  {
    sum += arr[i];

    if (arr[i] > max)
    {
      max = arr[i];
    }
    if (arr[i] < min)
    {
      min = arr[i];
    }
  }

  average = sum / n;

  printf("最大数:%d\n", max);
  printf("最小数:%d\n", min);
  printf("平均数:%d\n", average);

  return 0;
}

运行结果

在这里插入图片描述

第四题

从键盘录入一组数列,判断是否是回文,举例:12321,abba,12

代码

#include <stdio.h>

int main()
{
  int n;                // 定义一个变量,表示数列的长度
  int arr[100];     // 定义一个数组
  int number = 1; // 用来判断输入的回文数是否正确

  printf("请输入数列的长度:\n");
  scanf("%d", &n);

  if (n <= 0 || n > 100)
  {
    printf("输入的长度不合法,请输入1到100之间的整数。\n");
    return 1; 
  }

  printf("请输入数列的元素(以空格分隔):\n");
  for (int i = 0; i < n; i++)
  {
    scanf("%d", &arr[i]);
  }

  for (int i = 0; i < n / 2; i++)
  {
    if (arr[i] != arr[n - 1 - i])
    {
      number = 0; 
      break;            
    }
  }

  if (number)
  {
    printf("该数列是回文。\n");
  }
  else
  {
    printf("该数列不是回文。\n");
  }

  return 0; 
}

运行结果

在这里插入图片描述

第五题

用数组存储10个整型数,通过键盘输入一个数,找出该数在数组中的下标值;

代码

#include <stdio.h>

int main()
{
  int arr[5];    // 声明一个包含10个整型数的一维数组
  int number;  // 声明用于存储用户输入要查找的数的变量
  int found = 0;  // 声明一个标志变量,用于标记是否找到目标数
  int index = 0; // 声明一个变量用于存储找到的目标数的下标

  printf("请输入5个整型数:\n");
  for (int i = 0; i < 5; i++)
  {
    scanf("%d", &arr[i]);
  }

  // 提示用户输入要查找的数
  printf("请输入要查找的数:\n");
  scanf("%d", &number);

  // 遍历数组,查找目标数
  for (int i = 0; i < 5; i++)
  {
    if (arr[i] == number)
    {
      found = 1; // 找到目标数,将标志变量设置为1
      index = i; // 记录目标数的下标
      break;     // 找到后退出循环
    }
  }

  // 根据查找结果输出相应信息
  if (found)
  {
    printf("数 %d 在数组中的下标是:%d\n", number, index);
  }
  else
  {
    printf("在数组中未找到数 %d\n", number);
  }

  return 0; // 程序正常结束
}

运行结果

在这里插入图片描述

第六题

通过键盘输入 10 个学员成绩, 1)输出不及格学员的成绩和下标。 2)求最高分的下标值 3)求最低成绩的下标值 4)求总成绩及平均成绩

代码

#include <stdio.h>

int main(int argc, char *argv[])
{
  int arr[10];
  int max = 0, min = 100, sum = 0;
  int maxIndex = -1, minIndex = -1; // 初始化索引变量
  float average;
  int len = sizeof(arr) / sizeof(arr[0]);

  printf("请输入10个学员的成绩\n");
  for (int i = 0; i < len; i++)
  {
    scanf("%d", &arr[i]);
  }

  for (int i = 0; i < len; i++)
  {
    if (arr[i] < 60)
    {
      printf("不及格学员的成绩是:%d, 下标为:%d\n", arr[i], i);
    }

    if (arr[i] > max)
    {
      max = arr[i];
      maxIndex = i;
    }

    if (arr[i] < min)
    {
      min = arr[i];
      minIndex = i;
    }

    sum += arr[i];
  }

  average = sum / 10.0;
  printf("最高分的下标是:%d\n最低分的下标是:%d\n总成绩是:%d\n平均成绩是:%.2f\n", maxIndex, minIndex, sum, average);

  return 0;
}

运行结果

在这里插入图片描述


http://www.kler.cn/a/442786.html

相关文章:

  • MySQL 与 Redis 的数据一致性问题
  • 2_CSS3 背景 --[CSS3 进阶之路]
  • <论文>时序大模型如何应用于金融领域?
  • 网络安全、Web安全、渗透测试之笔经面经总结
  • 系统架构设计师考点—项目管理
  • 线形回归与小批量梯度下降实例
  • pytest入门三:setup、teardown
  • 【WRF教程第3.3期】预处理系统 WPS 详解:以4.5版本为例
  • 第十四届蓝桥杯Scratch国赛真题—转动的车轮
  • Android 上集成 TikTok SDK及数据归因
  • c#基于tcp的打印机共享程序可以打印图片
  • redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip
  • HttpSevletRequest Body信息不能被多次读取的问题
  • Java-注解
  • ARM/Linux嵌入式面经(五七):东方微电
  • AIGC魔性视频创作教程,即梦AI、海螺AI、混元大模型、通义万相
  • 低代码/无代码开发平台下的API接口创新实践
  • 请求三方http工具
  • ElasticSearch08-分析器详解
  • SQL 自然连接(Natural Join)详解
  • 物理信息神经网络(PINN)八课时教案
  • 深度学习在日志分析中的应用:智能运维的新前沿
  • C#调用Python脚本的方式(一),以PaddleOCR-GUI为例
  • 【FFmpeg 教程】给视频加字幕
  • 机器学习周报(12.9-12.15)
  • LF CRLF