在代码中获得运行时错误

时间:2015-01-06 12:55:51

标签: c c99

在给定代码中获得运行时错误

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;
}

3 个答案:

答案 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);