编程基础C—— 详谈一维数组的概念与应用
1.一维数组:
(1)一维数组的定义:
数据类型 数组名[数组长度]; int a[10];
(2)数组的地址就是第一个元素的首地址,数组的名字就代表数组的地址,且是一个常量。
(3)数组的下标:元素在数组中的位置,下标是从0开始的。所以数组的下标最大只能为数组的长度减1,使用过程中,注意不要下标越界。
(4)数组的初始化:
直接给所有元素进行赋值;
给部分元素进行赋值,未赋值的元素默认为0;
直接省略长度,大括号里元素个数就是数组长度;
(5)冒泡排序:
排序思路:
假设数组有n个元素,那么最外层循环(一共要比较多少趟)循环变量 ( i )需要 i<n-1,里层的循环(每趟要比较多少次)循环变量 ( j ),需要 j<n-1-i
例:
1.输入10个成绩并计算其平均分
#include <stdio.h>
int main(int argc, const char * argv[])
{
float grade[10];
printf("请输入成绩:");
for (int i=0;i<10;i++)
{
scanf("%f",&grade[i]);
}
float ave=0.0;
for (int j=0;j<10;j++)
{
ave = ave+grade[j];
}
printf("ave= %f",ave/10);
return 0;
#include <stdio.h>
int main(int argc, const char * argv[])
{
float grade[10];
printf("请输入成绩:");
for (int i=0;i<10;i++)
{
scanf("%f",&grade[i]);
}
float ave=0.0;
for (int j=0;j<10;j++)
{
ave = ave+grade[j];
}
printf("ave= %f",ave/10);
return 0;
}
2.求数组中最大的元素:
#include <stdio.h>
int main(int argc, const char * argv[])
{
int a[4];
printf("请输入数据:");
for (int i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
int j,max=*a;
for (j=1;j<4;j++)
{
if(max<a[j])
max=a[j];
}
printf("max= %d",max);
return 0;
int main(int argc, const char * argv[])
{
int a[4];
printf("请输入数据:");
for (int i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
int j,max=*a;
for (j=1;j<4;j++)
{
if(max<a[j])
max=a[j];
}
printf("max= %d",max);
return 0;
}
数组的应用实例:
给定某年某月某日,将其转换成这一年的第几天并输出。
#include <stdio.h>
int main(int argc, const char * argv[])
{
int year,month,day;
int run[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //定义闰年的月份的天数
int pin[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //定义平年的月份的天数
printf("请输入您查找的日期:");
scanf("%d,%d,%d",&year,&month,&day);
if ((year%4==0&&year%100!=0)||(year%400==0)) //判断是否是闰年:
{
for(int i=1;i<month;i++)
{
day=day+run[i];
}
}else
for(int i=1;i<month;i++)
{
day=day+pin[i];
}
printf("day= %d",day);
return 0;
给定某年某月某日,将其转换成这一年的第几天并输出。
#include <stdio.h>
int main(int argc, const char * argv[])
{
int year,month,day;
int run[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //定义闰年的月份的天数
int pin[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //定义平年的月份的天数
printf("请输入您查找的日期:");
scanf("%d,%d,%d",&year,&month,&day);
if ((year%4==0&&year%100!=0)||(year%400==0)) //判断是否是闰年:
{
for(int i=1;i<month;i++)
{
day=day+run[i];
}
}else
for(int i=1;i<month;i++)
{
day=day+pin[i];
}
printf("day= %d",day);
return 0;
}
输入10个成绩并且从大到小排序。
#include <stdio.h>
int main(int argc, const char * argv[])
{
float grade[10];
printf("请输入成绩:");
for (int i=0;i<10;i++)
{
scanf("%f",&grade[i]);
}
for(int i=0;i<9;i++)
{
for (int j=0;j<9-i;j++)
{
int temp;
if (grade[j]<grade[j+1])
temp=grade[j];
grade[j]=grade[j+1];
grade[j+1]=temp;
}
}
for(int i=0;i<10;i++)
{
printf("%.2f ",grade[i]);
}
return 0;
}
#include <stdio.h>
int main(int argc, const char * argv[])
{
float grade[10];
printf("请输入成绩:");
for (int i=0;i<10;i++)
{
scanf("%f",&grade[i]);
}
for(int i=0;i<9;i++)
{
for (int j=0;j<9-i;j++)
{
int temp;
if (grade[j]<grade[j+1])
temp=grade[j];
grade[j]=grade[j+1];
grade[j+1]=temp;
}
}
for(int i=0;i<10;i++)
{
printf("%.2f ",grade[i]);
}
return 0;
}
感谢您的访问!
若对您有帮助或有兴趣请关注博客:http://www.cnblogs.com/Rong-Shengcom/
分类:
C
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?