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

一维数组练题习~

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

/*************************************************************************> File Name:    demo01.c> Author:       阮> Description:  > Created Time: ************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{// 创建一个数组,用来存放冒泡排序的数列int arr[10];//循环变量和临时变量int i,j,temp,desc = 1;printf("请输入10个整数:\n");//计算数组的大小int len = sizeof(arr) / sizeof(arr[0]);//控制台输入10个数字for (i= 0;i < len; i++)scanf("%d",&arr[i]);//&arr[i]: []的优先级高于&printf("\n排序前:");for (i = 0;i < len ;i++)printf("%-4d",arr[i]);printf("\n");//冒泡排序//外层循环:实现排序轮数的遍历:轮数=数组大小 - 1for ( i = 0;i<len - 1; i++){//设置一个flag,用int flag = 0;//内层循环:实现每一轮比较次数:比较次数 = 数组大小 - 轮数 - 1for (j= 0; j <len -i -1; j++){//相邻的两个数比较,满足交换条件,就要交换位置//降序排序:if(arr[j] < arr[j+1])//升序排序:if(arr[j] > arr[j+1])if (desc){if(arr[j] < arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;flag = 1;}}else{//升序if(arr[j] > arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;flag = 1;}}}if (!flag) break; //1,2,3}printf("\n排序后:");for(i = 0; i < len; i++) printf("%-4d",arr[i]);printf("\n");return 0;
}

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

/*************************************************************************> File Name:    demo02.c> Author:       阮> Description:  > Created Time: ************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int t[] = {31,28,31,30,31,30,31,31,30,31,30,31};int year,month,day;printf("请输入年,月,日(yyyy-mm-dd):");scanf("%d-%d-%d",&year,&month,&day);if (year %4 ==0 && year % 100 != 0 || year % 400 == 0)t[1] = 29;int sum = day;for(int i = 0;i < month - 1; i++) sum += t[i];printf("%d月%d日是%d年的第%d天\n",month,day,year,sum);return 0;
}

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

/*************************************************************************> File Name:    demo03.c> Author:       阮> Description:  三个数的最大最小平均值> Created Time: ************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int len;printf("请输入数组长度:\n");scanf("%d",&len);int a[len];int i,j,max = -9999,min = 9999,sum = 0;len = sizeof(a) / sizeof(a[0]);printf("请输入%d个数字",len);for(i=0;i<len;i++) scanf("%d",&a[i]);for(i=0;i<len;i++){if( a[i] > max) max=a[i];if( a[i] < min) min=a[i];sum+=a[i];}printf("最大值是%d,最小值是%d,平均值是%d\n",max,min,sum/=len);return 0;
}

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

/*************************************************************************> File Name:    demo04.c> Author:       阮> Description:  判断回文数> Created Time: ************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int len , i ;  //确定数组大小。printf ("请输入数组长度:\n");scanf("%d",&len);char a[len];//给数组输入元素   printf("给数组输入%d元素:\n",len);while(getchar() != '\n');for(i = 0;i < len ;i++) scanf("%c",&a[i]);len = sizeof(a) / sizeof(a[0]);// 判断是否是回文数int flag = 1;for(i = 0;i < len / 2;i++){if(a[i] != a[len - i - 1]){flag = 0;break;}}// 是,不是if(flag) printf("是回文数\n");else printf("不是回文数\n");return 0;
}

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

/*************************************************************************> File Name:    demo05.c> Author:       阮> Description:  > Created Time: ************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int arr[10]; // 创建长度为10的数组int pr,i,index = -1;  //pr:需要查找的数   //index = -1 初始化下标变量printf("请输入10个数:\n");for(i = 0; i < 10;i++){scanf("%d",&arr[i]);}//请输入要查找的数printf("请输入要查找的数:\n");scanf("%d",&pr);//遍历数组查找目标数for(i = 0;i < 10;i++){if(arr[i] == pr){index = i;break;}}//输出结果if(index != -1){printf("该数在数组中的下标是:%d\n",index);}else{printf("这个数不再数组中\n");}return 0;
}

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

/*************************************************************************> File Name:    demo06.c> Author:       阮> Description:  > Created Time: ************************************************************************/#include <stdio.h>int main()
{float arr[10];int i;float total = 0; //总成绩float average;   //平均值int maxIndex = 0;int minIndex = 0;printf("请输入10个学员成绩:\n");for(i = 0;i < 10;i++){scanf("%f",&arr[i]);total += arr[i]; //总成绩//计算最高分下标if(arr[i] > arr[maxIndex]){maxIndex = i;}//计算最低分下标if(arr[i] < arr[minIndex]){minIndex = i;}}//计算平均average = total / 10;//输出不及格学员成绩printf("不及格学员成绩下标:\n");for(i=0;i<10;i++){if(arr[i] < 60){printf("%d下标,成绩%.2f\n",i,arr[i]);}}printf("最高分下标:%d\n",maxIndex);printf("最低分下标:%d\n",minIndex);printf("总成绩:%.2f,平均成绩:%.2f\n",total,average);return 0;   
}

http://www.dtcms.com/a/289312.html

相关文章:

  • PyTorch的基础概念和复杂模型的基本使用
  • 【软件测试】从软件测试到Bug评审:生命周期与管理技巧
  • ESXi6.7硬件传感器红色警示信息
  • ICT模拟零件测试方法--测量参数详解
  • ThinkPHP8极简上手指南:开启高效开发之旅
  • 基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现
  • STM32CubeMX的一些操作步骤的作用
  • 拼写纠错模型Noisy Channel(下)
  • 机器学习理论基础 - 核心概念篇
  • 复杂度优先:基于推理链复杂性的提示工程新范式
  • Linux操作系统之线程(四):线程控制
  • 20250720-1-Kubernetes 调度-白话理解创建一个Pod的内部工作流_笔记
  • Qt的安装和环境配置
  • Ubuntu挂载和取消挂载
  • 【vue-7】Vue3 响应式数据声明:深入理解 reactive()
  • Matlab自学笔记六十四:求解自变量带有约束条件的方程
  • 相同问题的有奇点模型和无奇点模型有什么区别
  • 服务器上的文件复制到本地 Windows 系统
  • [学习] 深入理解傅里叶变换:从时域到频域的桥梁
  • 04训练windows电脑低算力显卡如何部署pytorch实现GPU加速
  • LINUX720 SWAP扩容;新增逻辑卷;逻辑卷扩容;数据库迁移;gdisk
  • 【超越VGGT】π3-利用置换等变方法去除3r系列的归纳偏置
  • 机器视觉---深度图像存储格式
  • 监督学习应用
  • 零基础学习性能测试第三章:执行性能测试
  • Spring Boot 订单超时自动取消的 3 种主流实现方案
  • 将SAC强化学习算法部署到ROS2的完整指南
  • 基于卷积傅里叶分析网络 (CFAN)的心电图分类的统一时频方法
  • 复杂度+包装类型+泛型
  • 全平台爬虫配置流程