C语言中Fortran风格的隐含do循环?

C语言中Fortran风格的隐含do循环?,c,for-loop,printing,C,For Loop,Printing,我可以像Fortran一样在C语言中使用这种“隐含”循环吗?我(很高兴)在Ubuntu 20.04上使用gcc error: expected expression before ‘for’ 192 | printf("e0 v0 %f %f %f %f %f %f \n",for (unsigned i=0; i < 3; i++) e0[i],v0[i] ); 错误:“for”之前应为表达式 192 | printf(“e0 v0%f%

我可以像Fortran一样在C语言中使用这种“隐含”循环吗?我(很高兴)在Ubuntu 20.04上使用gcc

    error: expected expression before ‘for’
      192 |    printf("e0 v0 %f %f %f %f %f %f  \n",for (unsigned i=0; i < 3; i++) e0[i],v0[i] );
错误:“for”之前应为表达式
192 | printf(“e0 v0%f%f%f%f%f%f%f\n”,用于(无符号i=0;i<3;i++)e0[i],v0[i]);

谢谢你的阅读!祝你节日快乐

不,有几个原因

首先也是最重要的是,语法不允许这样做。
for
循环本身是一条语句,而不是一个表达式,因此它不能是函数中的参数

其次,在调用函数之前,函数参数会被完全求值,结果值会被传递给函数-您不能传递函数在内部执行的表达式

为了做你想做的事,你需要写作

printf ( "e0 v0 " );
for ( int i = 0; i < 3; i++ )
  printf( "%f %f ", e[i], v[i] );
putchar( '\n' );
printf(“e0-v0”);
对于(int i=0;i<3;i++)
printf(“%f%f”,e[i],v[i]);
putchar('\n');

总之。。。不需要。您需要显式匹配6个格式说明符,但您可以重新排列代码,将
printf()
放入循环中,使用2个格式说明符。谢谢。我可以理解循环内部的情况,我不想这样,但是你能详细说明一下“使用2个格式说明符”吗?像这样
printf(“e0 v0”);对于(int i=0;我希望你我会保存这个。我说我不想打印,因为如果我有其他东西要打印,比如一些变量a、b、c,然后是向量等等,最好是在一行中完成。谢谢你!你可以随时编写你的助手函数,例如
print\u vec3
print\u array
。谢谢你。非常感谢问好!