当前位置: 首页 > 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.lryc.cn/news/594105.html

相关文章:

  • 算法题(176):three states
  • windows11环境配置torch-points-kernels库编译安装详细教程
  • 如何优雅解决缓存与数据库的数据一致性问题?
  • 循环黑洞:用Python生成银河系特效图
  • tidyverse-数据可视化 - 图形的分层语法
  • Web开发 04
  • Work SSD基础知识
  • jxORM--编程指南
  • 试用SAP BTP 02:试用SAP HANA Cloud
  • MySQL笔记3
  • Oracle触发器:数据世界的“隐形守护者“
  • Uniapp 纯前端台球计分器开发指南:能否上架微信小程序 打包成APP?
  • Github 贪吃蛇 主页设置
  • 将EXCEL或者CSV转换为键值对形式的Markdown文件
  • 【Python数据采集】Python爬取小红书搜索关键词下面的所有笔记的内容、点赞数量、评论数量等数据,绘制词云图、词频分析、数据分析
  • (LeetCode 面试经典 150 题 ) 1. 两数之和 (哈希表)
  • ps2025下载与安装教程(附安装包) 2025最新版photoshop安装教程
  • 在NLP深层语义分析中,深度学习和机器学习的区别与联系
  • MacBook的ARM架构(M芯片)操作虚拟机的docker拉取镜像问题
  • XSS内容总结
  • 【图文详解】Transformer架构详细解析:多头自注意力机制、qkv计算过程、encoder架构、decoder架构以及mask的意义
  • Logback简单使用
  • WiFiMouseServer手机等作为远程输入
  • 进阶向:基于Python的局域网文件传输工具
  • LeetCode|Day20|9. 回文数|Python刷题笔记
  • 多任务学习AITM算法简介
  • Kafka MQ 控制器 broker
  • 数据结构第二章:线性表之顺序表
  • 【新手向】PyTorch常用Tensor shape变换方法
  • C++ STL中迭代器学习笔记