C语言中Fortran风格的隐含do循环?
我可以像Fortran一样在C语言中使用这种“隐含”循环吗?我(很高兴)在Ubuntu 20.04上使用gccC语言中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%
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
。谢谢你。非常感谢问好!