m0_45128748
xiaoxiaojinglinger
采纳率75%
2019-07-04 18:41

程序没错,为什么计算结果为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);
}

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2年前
    // 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);
    }
    
    

    图片说明

    问题解决的话,请采纳

    点赞 1 评论 复制链接分享
  • qtchen_1988 qtchen_1988 2年前
    第一点:
    你定义的 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,可能其他)。
                    所以计算出来的结果不是你想要的
    
    
    点赞 评论 复制链接分享
  • weixin_43296749 weixin_43296749 2年前

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

    点赞 评论 复制链接分享
  • qq_40946921 Italink 2年前

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

    n/a[i][0]<1那么就是0
    
    点赞 评论 复制链接分享

相关推荐