程序没错,为什么计算结果为0?

#include <stdio.h>
int main(){
    int n,i,money;
    int a[3][2];
    int min=0;
    scanf("%d",&n);
    for(i=0;i<3;i++){
        scanf("%d%d",&a[3][0],&a[3][1]);
    }
    for(i=0;i<3;i++){
        if(n%a[i][0]!=0)
        money=a[i][1]*(n/a[i][0]+1);
        else
        money=a[i][1]*(n/a[i][0]);
    }
    printf("%d",money);
}

为什么用数组无法计算,求大神解答!!

// Q768205.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include <stdio.h>
int main(){
    int n,i,money;
    int a[3][2];
    int min=0;
    scanf("%d",&n);
    for(i=0;i<3;i++){
        scanf("%d%d",&a[i][0],&a[i][1]);
    }
    for(i=0;i<3;i++){
        if(n%a[i][0]!=0)
            money=a[i][1]*(n/a[i][0]+1);
        else
            money=a[i][1]*(n/a[i][0]);
        if (money < min || min == 0) min = money;
    }
    printf("%d", min);
}

图片说明

问题解决的话,请采纳

int/int=int,小数部分会被舍弃,假设你

n/a[i][0]<1那么就是0

你第一个for循环赋值中没有出现i

第一点:
你定义的 int a[3][2]; 大小3行2列;
而你输入的时候 scanf("%d%d",&a[3][0],&a[3][1]); 行的下标是3(应该0~2,其实这里应该是 i);

第二点:
    for(i=0;i<3;i++){
        if(n%a[i][0]!=0)
                    ...
                }
                你未对第一行,第二行,第三行赋值,就取它的值,它又是局部变量,编译器给它的默认值是未知的(可能是0,可能其他)。
                所以计算出来的结果不是你想要的