编写C程序,在给定数组的第i个元素前插入元素b,i与b的值由键盘输入。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写C程序,在给定数组的第i个元素前插入元素b,i与b的值由键盘输入。相关的知识,希望对你有一定的参考价值。

#include "stdio.h"
int lengh(int *a)

int i;
for(i=0;*(a+i);i++);
return i;

main()

int a[10]=1,2,3,4,5,6,i,b,p,j,k;
clrscr();
p=lengh(a);
for(k=0;k<p;k++)
printf("%d ",a[k]);
scanf("%d%d",&i,&b);
if(i<1||i>p) printf("The value of i is illegal!");
else if(p==10) printf("The list is full!");
for(j=p-1;j<=i;j--) a[j+1]=a[j];a[i]=b;
for(k=0;k<p+1;k++)
printf("%d ",a[k]);

高手帮忙看下错在哪里了,谢谢!本人是穷人,没分,不好意思!

///////////////////////没分无所谓 但是一定要记得采纳 /////////////////////////////
1 2 3 4 5 6 请输入位置和数据3 65
1 2 3 65 4 5 6 Press any key to continue

#include "stdio.h"
int lengh(int *a)

int i;
for(i=0;*(a+i);i++);
return i;

main()

int a[10]=1,2,3,4,5,6,i,b,p,j,k;

p=lengh(a);
for(k=0;k<p;k++)
printf("%d ",a[k]);
printf("请输入位置和数据");
scanf("%d %d",&i,&b);
if(i<1||i>p)
printf("The value of i is illegal!");
else if(p==10)
printf("The list is full!");
for(j=p+1;j>=i;j--)
a[j+1]=a[j];
a[i]=b;
for(k=0;k<p+1;k++)
printf("%d ",a[k]);
参考技术A clrscr这个改成 system("clr"); 包含在头文件 #include <windows.h> 里 参考技术B 很简单,就是在else if(p==10) printf("The list is full!");后面少了一个else

2021-07-04:股票问题1。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择某一天 买入这只股票,并选择在未来的某一个不同的日子

2021-07-04:股票问题1。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择某一天 买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

福大大 答案2021-07-04:

一次遍历法。
遍历的时候,记录最小值,然后收集所有的【prices[i]-最小值】,其中的最大值就是需要返回的值。
时间复杂度:O(N)。空间复杂度:O(1)。

代码用golang编写。代码如下:

package main

import "fmt"

func main() {
    arr := []int{7, 1, 5, 3, 6, 4}
    ret := maxProfit(arr)
    fmt.Println(ret)
}

func maxProfit(prices []int) int {
    N := len(prices)
    if N <= 1 {
        return 0
    }
    ans := 0
    min := prices[0]
    for i := 1; i < N; i++ {
        min = getMin(min, prices[i])
        ans = getMax(ans, prices[i]-min)
    }
    return ans
}

func getMin(a int, b int) int {
    if a < b {
        return a
    } else {
        return b
    }
}

func getMax(a int, b int) int {
    if a > b {
        return a
    } else {
        return b
    }
}

执行结果如下:
图片


左神java代码

以上是关于编写C程序,在给定数组的第i个元素前插入元素b,i与b的值由键盘输入。的主要内容,如果未能解决你的问题,请参考以下文章

设计一个java函数,在数组的第i个下标前插入一个数据元素,并保持数组元素的连续性... 哪位大侠指点我哈.

ZZNUOJ_用C语言编写程序实现1149:查找子数组(附完整源码)

一个数组有10个元素如何在第一个元素上插入一个0并且保证后面的元素值和排列顺序

给定一个集合,查找集合中一共多多少种不同的元素

编写程序,找出数组a中前n个元素中的最小元素及其下标

数组a中有10个元素,求a中各相邻两个元素的和并存于数组b中并按3个一行输出。