在给定代码中获得运行时错误
INITIALISING VARIABLES
#include <stdio.h>
#include <stdlib.h>
int main(){
int k;
int n;
int i;
int *a;
int b;
int t;
int f=0;
scanf("%d",&t);
while(t--){
scanf("%d %d",&n,&k);
dynami
a=malloc(sizeof(int)*n);
for(i=0;i<n;i++){
scanf("%d",a[i]);
a[i]=(k/a[i]);
}
这是运行时执行失败的地方
for(i=0;i<n;i++){
scanf("%d",b);
a[i]=(a[i]*b);
找到最大元素
if(f==0){
n=a[0];
f=1;
}
if(a[i]>n)
n=a[i];
}//END FOR LOOP
printf("%d\n",n);
}
return 0;
}
答案 0 :(得分:2)
更改
scanf("%d",b);
和
scanf("%d",a[i]);
到
scanf("%d",&b);
和
scanf("%d",&a[i]);
分别和代码一起工作。 scanf
期望参数类型为int*
,但您提供类型为int
的参数。 &
是地址运算符,它提供变量的地址,在您的情况下为int*
,因为a[i]
和b
都是{{1} }第
答案 1 :(得分:1)
scanf("%d",b);
应该是:
scanf("%d",&b);
你错过了一个&#39;&amp;&#39;这就是运行时错误的原因。
答案 2 :(得分:0)
此
scanf("%d",b);
应该是
scanf("%d",&b);