首页 > 其他分享 >C语言--数组1

C语言--数组1

时间:2022-12-29 21:01:26浏览次数:45  
标签:-- max sum C语言 int 数组 MAX main

1、求斐波那契数列的前20项和

#include<stdio.h>
int main(){
int a[20];
a[0]=a[1]=1;
int sum=0;
for(int i=2;i<20;i++)
{
a[i]=a[i-2]+a[i-1];
sum+=a[i];
//a[0]+a[1]=1+1=2
//a[2]=2
//a[1]+a[2]=3
//...
//a[i-2]+a[i-1]=a[i]
}
printf("%d\n",sum+a[0]+a[1]);
}

2、不用排序,把一个数组中的负数放在数组的前面

#include<stdio.h>
#define N 5
int main()
{
int a[N];
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
//if a[i]<0
//a[i]<-->a[0]
//a[i]<-->a[1]
for( int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(a[i]<0)//如果a[i]<0就交换a[i]-a[j]的值,直到a[i]>0
{
int t;
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(int i=0;i<N;i++)
{
printf("%d ",a[i]);
}
}

3、不用排序,找到数组元素中的第二大值

#include<stdio.h>
#define N 5
#define MAX(a,b) (a)>(b)?(a):(b)
//不用排序,找到数组元素中的第二大值
int main()
{
int a[N];
int MAX=0,MAX_i,Max=0;
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
//最大值
for(int i=0;i<N;i++)
{
if(MAX<a[i])
{
MAX=a[i];
MAX_i=i;
}
}
a[MAX_i]=0;//最大值赋值为0
//第二大值
for(int i=0;i<N;i++)
{
if(Max<a[i])
{
Max=a[i];
}
}
printf("%d\n",Max);
}

4、连续的子数组之和

#include<stdio.h>
#define N 10
int main()
{
int i,j;
int sum;
int max=0;
int a[N];
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
//a[0]+a[1]
//a[0]+a[1]+a[2]

for(i=0;i<N;i++)
{
sum=0;
for(j=i;j<N;j++)
{
sum=sum+a[j];
if(sum>max)
{
max=sum;
}
}
}
printf("%d\n",max);
}

4、方法二

#include<stdio.h>
#define N 10
int main()
{
sum=0;
for(i=0;i<N;i++)
{
sum+=a[i];
if(sum>max)
{
max=sum;
}
if(sum<0)
{
sum=0;
}
}
printf("max=%d\n",max);
}

5. 数组部分和问题  

 假设有一个数组 int a[N]; (N <= 20)

 能不能从数组a中任选M个元素(0 < M <= N),使得其和为K.   M 和 K都是从键盘输入。

#include<stdio.h>
#define N 10
int main()
{
int a[N];
int k,sum=0,m,j,i;
scanf("%d%d",&k,&m);

for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(j=1;j<n;j++)
{
for(i=0;i<n-j;i++)
{
if(a[i]>a[i+1])
{
int t;
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
if(a[i]>k)
{
break;
}
else if()
}
}
}

标签:--,max,sum,C语言,int,数组,MAX,main
From: https://blog.51cto.com/u_15860837/5978768

相关文章

  • 钉钉的想象力,向企业服务第一平台进阶
    作者|曾响铃文| 响铃说时近年末,钉钉7.0版本在杭州重磅发布。两年一个大版本,这一次钉钉正试图向更高的维度进化:第一,在完成一家企业的组织数字化和业务数字化后,钉钉开始将......
  • [oeasy]python0035_ 整合shell编程_循环_延迟_清屏
    ​ 整合shell编程回忆上次内容用\r可以让输出位置回到行首原位刷新时间如果想要的是大字符效果需要使用figlet但同时还希望能刷新​编辑这可能......
  • First time to activate mb sd c4 steps
    Firsttimetoactivatembsdc4stepsOpenyourStarSetyoucomporttoCom2,115200XXOpentheEPC_NetUser:adminpasswd:12345Click“Server”Click......
  • Python创建虚拟环境
    Linux下安装1、virtualenv安装python的虚拟环境主要使用的是virtualenv软件。安装之前需要用到pip,首先检测是否安装:pip3list如果没有安装的话运行:sudoapt-getin......
  • 中国亲戚关系计算器
    中国亲戚关系计算器。该项目实现了中国亲戚关系及称呼之间的换算,可以将中国复杂的亲戚关系及称呼通过计算器的方式简单的运算出来。在线使用:https://passer-by.com/relati......
  • bind搭建服务器成功啦!
    bind搭建权威服务器成功啦!只限自己用,不做不合规矩的事。非常感谢王某工作室,很早就像搭建了,网上百度了很多,网文写的不全面,内容都差不多,还是找个专业人士帮忙,快的多。赞 ......
  • Ubuntu18.04安装docker-compose
    下载compose下载链接:https://github.com/docker/compose上传到乌班图系统可以直接拖拽过去,放到/usr/local/bin/目录下修改包名mvdocker-compose-linux-x86_......
  • 容斥原理+简单博弈论
    容斥原理2个韦恩图的面积并:\(S_1+S_2-S_1S_2\)3个韦恩圆的面积并:\(S_1+S_2+S_3-S_1S_2-S_1S_3-S_2S_3+S_1S_2S_3\)n个韦恩圆的面积并:\(S_1+S_2+...+S_n-S_1S_2-...-S......
  • java中的字符串反转
    本文主要讲述java中的字符串反转示例代码如下:1publicclassHomeWork01{2publicstaticvoidmain(String[]args){3Strings="abcdef";4......
  • 第一篇博客随笔
    前言初次接触,博客园还是网上搜程序报错,从一开始羡慕大牛写的博客,慢慢开始自己尝试通过这种方式,记录自己的学习。其实想法非常简单,仅仅是想把自己学习中学到的知识及解决......