gpt4 book ai didi

python - C 函数,返回按升序排序的数组中大于给定数字的最小数字的索引

转载 作者:行者123 更新时间:2023-11-30 21:04:51 24 4
gpt4 key购买 nike

我正在翻译一些 Python 代码,以加深我对编程的理解。我有一个数组 P_array ,其中包含 1000 个递增的 float 。我的任务是编写一个函数,该函数将返回 P_array[x] 大于 720 的第一个实例的索引。这里是 python 和 C 代码,我被困在 python 代码的最后三行。

import numpy as np
import matplotlib.pyplot as plt

# Initializations

Dt = 1/32 # timestep Delta t
P_init= 30 # initial population
t_init = 0 # initial time
t_end = 30 # stopping time
n_steps = int(round(t_end/Dt))

t_array = np.zeros(n_steps+1)
P_array = np.zeros(n_steps+1)
t_array[0] = t_init
P_array[0] = P_init

#Eulers method

for i in range (1, n_steps + 1):
P = P_array[i-1]
t = t_array[i-1]
dPdt = 0.7 * P * (1-(P/750)) - 20
P_array[i] = P + Dt * dPdt
t_array[i] = t + Dt

index = np.where(P_array>=720)

x = ([x[0] for x in index])
print (x)

C代码

int main() {
int i, j, x = 1;
float dt, P_init, t_init, t_end;

dt = 0.03125;
P_init = 30;
t_init = 0;
t_end = 30;

int n_steps = 0;
n_steps = t_end/(float)dt;

float Parray[n_steps+1];
float Tarray[n_steps+1];

for (i=0; i<n_steps+1; i++) {
Parray[i]=0;
Tarray[i]=0;
}

Parray[0] = P_init;
Tarray[0] = t_init;

float P,t,dpdt,s,d;

while (x < n_steps+1) {
P = Parray[x-1];
t = Tarray[x-1];
dpdt = 0.7 * P * (1-(P/750)) - 20;
s = P + (dt * dpdt);
Parray[x] = s;
d = t + dt;
Tarray[x] = d;
x++;
printf("%f %f \n ",s,d);
}

return(0);
}

最佳答案

关于:*C 函数返回大于递增数组给定值的最小数字的索引`

以下建议代码:

  1. 执行所需的功能

现在,建议的代码:

// C function that returns index of smallest number greater than given from increscent array

#include <stdio.h>

int main( void )
{
//
// assume code to generate array, sorted ascending
size_t arraySize;
float sortedArray[ arraySize ];
//

//
// assume code to input target value
float targetValue;
//

for( size_t i=0; i<arraySize; i++ )
{
if( targetValue > sortedArray[i] )
{
printf( "index into array = %zu\n", i );
break;
}
}
}

关于python - C 函数,返回按升序排序的数组中大于给定数字的最小数字的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59010727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com