Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在一个do while循环中同时运行三个do while循环?_C - Fatal编程技术网

C 如何在一个do while循环中同时运行三个do while循环?

C 如何在一个do while循环中同时运行三个do while循环?,c,C,我有一个程序,通过使用do while条件循环在x维改变位移x[I],使系统的能量最小化。我想把它扩展到一个程序,它通过改变x[I],y[I],z[I],来最小化能量,我想,在这种情况下,在一个大的do-while循环中需要三个同时进行的do-while循环,我怎样才能做到这一点 一维问题的代码如下所示: int main(void) { double eta,energyold; energyold=1.0; unsigned i,j; init(); do{ f

我有一个程序,通过使用
do while
条件循环在x维改变位移
x[I]
,使系统的能量最小化。我想把它扩展到一个程序,它通过改变
x[I]
y[I]
z[I]
,来最小化能量,我想,在这种情况下,在一个大的
do-while
循环中需要三个同时进行的
do-while
循环,我怎样才能做到这一点

一维问题的代码如下所示:

int main(void)
{
  double eta,energyold;
  energyold=1.0;
  unsigned i,j;
  init();

  do{
    function();
    functiond(); //JACOBIAN
    dgesv(fnd,b,N,dx);
    newpsn();
    energyT();
    eta=fabs(energy-energyold)/energy;
    energyold=energy;
    //printf("%lf %lf %lf\n",eta,energy,norm);
  }while(norm>1e-12);

  for(i=0;i<N;i++)
  {
     printf("The  Equillibrium position of ion %d is: %lf\n",i+1,x[i]);
  }
  return 0;
}
int main(无效)
{
双eta,energyold;
energyold=1.0;
无符号i,j;
init();
做{
函数();
functiond();//雅可比
dgesv(fnd,b,N,dx);
newpsn();
energyT();
eta=工厂(能源)/能源;
能量D=能量;
//printf(“%lf%lf%lf\n”,预计到达时间、能量、标准);
}而(常模>1e-12);

对于(i=0;i您可以尝试使用多线程。多线程不会使
do while
循环并行运行,而是并发运行

如果您在Linux上工作,您可以使用
pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数

一些有用的链接:

  • manpthread
    (在Linux上,如果安装了pthread库)


您可以尝试使用多线程。多线程不会使您的
while
循环并行运行,而是并发运行

如果您在Linux上工作,您可以使用
pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数

一些有用的链接:

  • manpthread
    (在Linux上,如果安装了pthread库)


您可以尝试使用多线程。多线程不会使您的
while
循环并行运行,而是并发运行

如果您在Linux上工作,您可以使用
pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数

一些有用的链接:

  • manpthread
    (在Linux上,如果安装了pthread库)


您可以尝试使用多线程。多线程不会使您的
while
循环并行运行,而是并发运行

如果您在Linux上工作,您可以使用
pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数

一些有用的链接:

  • manpthread
    (在Linux上,如果安装了pthread库)


有很多关于使用线程的建议,但我不认为您真的需要这样做

这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件


你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定的问题不需要,就避免使用线程。

关于使用线程有很多建议,但我不认为您真的需要这样做

这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件


你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定的问题不需要,就避免使用线程。

关于使用线程有很多建议,但我不认为您真的需要这样做

这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件


你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定的问题不需要,就避免使用线程。

关于使用线程有很多建议,但我不认为您真的需要这样做

这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件


你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定问题不需要,请避免使用它。

您可能想了解一下吗?当前版本的C无法做到这一点,您需要从您的操作系统进行扩展,或者您可以尝试OpenMP。此外,请在此处发布时正确缩进代码,并使用一些编译时不会出现警告的内容:
main
有返回
int
的类型。您可能想了解一下吗?当前版本的C无法做到这一点,您需要从您的操作系统中进行扩展,或者您可以尝试OpenMP。另外,请在此处发布时正确缩进您的代码,并拥有一些编译时不会出现警告的内容:
main
的返回类型为
int
。您可能需要o了解?当前版本的C无法做到这一点,您需要从操作系统中进行扩展,或者您可以尝试OpenMP。另外,请缩进您的代码