requiresC语言subscript requires array or pointer type错误

requires  时间:2022-03-01  阅读:()

subscript requires array or pointer type

下标表达式,形如p[i],等价于*(p+i),其中+是指针加法,数值上相当于+ sizeof(*p) * i。“多维”的下标表达式如p[i][j],由结合性等价于(p[i])[j],即*(p[i]+j),也就是*(*(p+i)+j)。[]和一元*操作符的操作数要求为指针类型,可以是数组名,但不能是int。 LZ的函数fun(int *)中,p[i]或p[j]得到一个int而不是数组或指针,p[i][j]或p[j][i]这样的表达式是非法的。 LZ问题的解决方案:fun函数头改为void fun(int (*p)[3])或void fun(int p[][3]);另外,main里面的int *p=a;改为int (*p)[3]=a;。 注: 1. int(*)[3]是指向int[3]这个数组类型的指针的类型,int(*p)[3]是这种类型的一个名称为p的对象。 2. C中没有多维数组,所谓多维数组,是指数组的数组,存储器中不保存各维的长度。因此多维数组作为函数参数传递时只有第一维可以省略(可以退化为对应的指针),因为数组不保存计算下标的必要信息,除了第一维以外的剩余长度必须在编译时确定,以进行下标计算。 ==== [原创回答团]

C语言subscript requires array or pointer type错误

#include<stdio.h> void main() { double h[10][10]; int i,j,k,r,n,p[50],q,count; double s[10],l[10][10],u[10][10],b[10],d[10],a1[10],x[10],y[10],t; for(k=0;k<3;k++) { scanf("%d",&n); printf("n=%d ",n); for(i=0;i<n;i++) y[i]=1; for(i=0;i<n;i++) for(j=0;j<n;j++) h[i][j]=1.0/(i+j+1); for(i=0;i<n;i++) { b[i]=0; for(j=0;j<n;j++) b[i]=b[i]+h[i][j]*y[j]; } for(count=0;count<10;count++) { for(r=0;r<n;r++) { for(i=r;i<n;i++) { s[i]=h[i][r]; for(q=1;q<=r-1;q++) s[i]=s[i]-l[i][q-1]*u[q-1][r]; h[i][r]=s[i]; } t=s[r]; p[r]=r-1; for(q=r;q<n;q++) if(s[q]>t) { t=s[q]; p[r]=q; } for(i=0;i<n;i++) { t=h[r][i]; h[r][i]=h[p[r]][i]; h[p[r]][i]=t; } h[r][r]=s[r]; u[r][r]=s[r]; for(i=r;i<n;i++) { l[i][r]=h[i][r]*1.0/h[r][r]; h[i][r]=l[i][r]; u[r][i]=h[r][i]; for(q=0;q<r-1;q++) u[r][i]=u[r][i]-l[r][q]*u[q][i]; h[r][i]=u[r][i]; } } for(i=0;i<n-1;i++) { q=p[i]; if(i==q) continue; else { t=b[i]; b[i]=b[q]; b[q]=t; } } for(i=1;i<n;i++) { for(q=0;q<i-1;q++) b[i]=b[i]-l[i][q]*b[q]; } for(i=n-2;i>=0;i--) { for(q=i;q<n;q++) b[i]=b[i]-u[i][q]*b[q]; b[i]=b[i]*1.0/u[i][i]; } b[n-1]=b[n-1]*1.0/u[n-1][n-1]; for(i=0;i<n;i++) x[i]=b[i]; for(i=0;i<n;i++) for(j=0;j<n;j++) h[i][j]=1.0/(i+j+1); for(i=0;i<n;i++) { b[i]=0; for(j=0;j<n;j++) b[i]=b[i]+h[i][j]*y[j]; } for(i=0;i<n;i++) { a1[i]=b[i]; for(j=0;j<n;j++) a1[i]=a1[i]-h[i][j]*x[j]; } for(i=0;i<n-1;i++) { t=a1[i]; a1[i]=a1[p[i]]; a1[p[i]]=t; } for(i=0;i<n;i++) { y[i]=a1[i]; for(j=0;j<i-1;j++) y[i]=y[i]-l[i][j]*y[j]; y[i]=y[i]*1.0/l[i][i]; } for(i=n-1;i>=0;i--) { d[i]=y[i]; for(j=n-1;j>i;j--) d[i]=d[i]-u[i][j]*d[j]; d[i]=d[i]*1.0/u[i][i]; } for(i=0;i<n;i++) x[i]=x[i]+d[i]; } for(i=0;i<n;i++) printf("x[%d]=%lf ",i,x[i]); } } double r[10];把它改a1[10],因为你上面有int r;不能相同 再其他的稍为改下就可以了是的 呵呵,写的那么长

阿里云年中活动最后一周 - ECS共享型N4 2G1M年付59元

以前我们在参与到云服务商促销活动的时候周期基本是一周时间,而如今我们会看到无论是云服务商还是电商活动基本上周期都要有超过一个月,所以我们有一些网友习惯在活动结束之前看看商家是不是有最后的促销活动吸引力的,比如有看到阿里云年中活动最后一周,如果我们有需要云服务器的可以看看。在前面的文章中(阿里云新人福利选择共享性N4云服务器年79.86元且送2月数据库),(LAOZUO.ORG)有提到阿里云今年的云...

提速啦母鸡 E5 128G 61IP 1200元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

RackNerd 黑色星期五5款年付套餐

RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...

requires为你推荐
融360请问融360真的可以贷款吗?他说一天到帐是真的吗?云知声考研 中科院自动化所 怎么样容灾备份目前有哪些容灾备份技术阿里地图如何在阿里巴巴网站上对地图进行修改?a8处理器苹果A8处理器和A9处理器有多大的区别?什么是cookie电脑里的cookies是什么意思,什么中文意思?小项目适合在家做的小项目有什么?0x800ccc0f任务“POP3.163.COM-正在接收”报告了错误(0x800CCC0F)乐辞乐的组词有什么网络购物的发展网购发展史
vps交流 主机优惠码 hostmonster 256m内存 优惠码 20g硬盘 嘟牛 嘉洲服务器 云全民 上海域名 有益网络 大容量存储器 hostker 服务器托管什么意思 linux服务器维护 paypal注册教程 重庆电信服务器托管 国外的代理服务器 web服务器有哪些 西部数码主机 更多