#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,可能其他)。
所以计算出来的结果不是你想要的