帮忙调试一个fortran程序,运行时提示This name has not been declared as an array or a function. [S

programstarimplicitnonecharacter*11sintegeri,jdoi=1,6doj=7-i,5+is=''s(j,j)='*'print*,... program star
implicit none
character*11 s
integer i,j
do i=1,6
do j=7-i,5+i
s=' '
s(j,j)='*'
print*,s
enddo
enddo
end
展开
 我来答
wfc1102
推荐于2018-05-07 · TA获得超过495个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:440万
展开全部

这个问题表明你对Fortran中的character类型理解还不够:

完整的定义为:character*m  s(n)表示定义了一个字符数组s,该数组的每个元素可以存放m个字符。

--------------------------------------------------------------

你的character*11 s就表示定义了一个变量,该变量可以存放11个字符。

既然已经声明为变量,那么你用数组的下标s(j,j)='*'来引用就有问题了嘛,此外你还用二维数组的形式来引用就有些莫名奇妙了!

--------------------------------------------------------------

你可以这样改

character  s(11)

 do i=1,6

 do j=7-i,5+i

  s='           '

  s(j)='*'

  print*,s

 enddo

 enddo

效果如图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式