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

相关文章:

  • 【1】YOLOv13 AI大模型-可视化图形用户(GUI)界面系统开发
  • 基础神经网络模型搭建
  • 【数据结构】栈和队列(接口超完整)
  • jQuery 插件
  • 本地部署 Claude 大语言模型的完整实践指南
  • 创建一个触发csrf的恶意html
  • 创新几何解谜游戏,挑战空间思维极限
  • ollama基本配置
  • 玄机——第六章 流量特征分析-蚂蚁爱上树
  • 2025最新 PostgreSQL17 安装及配置(Windows原生版)
  • 【Go语言-Day 22】解耦与多态的基石:深入理解 Go 接口 (Interface) 的核心概念
  • [硬件电路-59]:电源:电子存储的仓库,电能的发生地,电场的动力场所
  • 手写tomcat
  • API获取及调用(以豆包为例实现图像分析)
  • 用 Jetpack Compose 写 Android 的 “Hello World”
  • SSE和WebSocket区别到底是什么
  • linux shell从入门到精通(一)——为什么要学习Linux Shell
  • MongoDB多节点集群原理 -- 复制集
  • 《杜甫传》读书笔记与经典摘要(一)
  • 人工智能之数学基础:随机实验、样本空间、随机事件
  • 【算法训练营Day15】二叉树part5
  • LVS-----TUN模式配置
  • 【LeetCode刷题指南】--反转链表,链表的中间结点,合并两个有序链表
  • 【原创】微信小程序添加TDesign组件
  • tabBar设置底部菜单选项、iconfont图标(图片)库、模拟京东app的底部导航栏
  • 零基础学习性能测试第三章:执行性能测试
  • Windows CMD(命令提示符)中最常用的命令汇总和实战示例
  • 30天打牢数模基础-SVM讲解
  • Python 单例模式几种实现方式
  • Dify 1.6 安装与踩坑记录(Docker 方式)