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;不能相同 再其他的稍为改下就可以了是的 呵呵,写的那么长

lcloud零云:沪港IPLC,70元/月/200Mbps端口/共享IPv4/KVM;成都/德阳/雅安独立服务器低至400元/月起

lcloud怎么样?lcloud零云,UOVZ新开的子站,现在沪港iplc KVM VPS有端午节优惠,年付双倍流量,200Mbps带宽,性价比高。100Mbps带宽,500GB月流量,10个,512MB内存,优惠后月付70元,年付700元。另有国内独立服务器租用,泉州、佛山、成都、德阳、雅安独立服务器低至400元/月起!点击进入:lcloud官方网站地址lcloud零云优惠码:优惠码:bMVbR...

pacificrack:VPS降价,SSD价格下降

之前几个月由于CHIA挖矿导致全球固态硬盘的价格疯涨,如今硬盘挖矿基本上已死,硬盘的价格基本上恢复到常规价位,所以,pacificrack决定对全系Cloud server进行价格调整,降幅较大,“如果您是老用户,请通过续费管理或升级套餐,获取同步到最新的定价”。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款VPS特征:基于KVM虚拟,纯SSD raid...

妮妮云(30元),美国300G防御 2核4G 107.6元,美国高速建站 2核2G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

requires为你推荐
云知声云知声这家公司怎么样连接池什么是数据库连接池?谢谢了体系文件ISO体系文件分级javaHDvideojava手机视频转换器anychartjfreechar制作柱状图的时候。由于柱子之间的差距太大。有些柱子才个位有上千导致了Y轴数据太密集。求nvidia官方网站N卡的官网是什么?4g上网卡联通4g上网卡是什么?0x800ccc0f任务“POP3.163.COM-正在接收”报告了错误(0x800CCC0F)快照优化快照跟不上优化节奏优化方法出问题?摇一摇周边什么是微信摇一摇周边?
西部数码vps 网站域名备案 火山主机 hostmaster enom 美国翻墙 pccw 流媒体服务器 idc评测网 wordpress技巧 NetSpeeder 标准机柜尺寸 谁的qq空间最好看 新家坡 空间合租 中国电信测速网 双线asp空间 国外在线代理服务器 秒杀品 酸酸乳 更多