陈7嘎嘎厉害 2023-11-13 22:24 采纳率: 45.5%
浏览 37
已结题

PTA 7-3 判断题.

img

#include<stdio.h>
int main(){
    int n=0,m=0,i=0,j=0,k=0,sum[10001];
    int a[101],b[101],d[101];
    scanf("%d %d",&n,&m);
    for(i=0;i<m;i++){
        scanf("%d",&a[i]);
    }for(i=0;i<m;i++){
        scanf("%d",&b[i]);
    }
    for(i=0;i<n;i++){
        sum[i]=0;
        for(j=0;j<m;j++){
            scanf("%d",&d[j]);
            
            if(d[j]==b[j]){
                
                sum[j]+=a[j];}
            
        }
}
        for(i=0;i<n;i++){
            printf("%d\n ",sum[i]);
        }
        return 0;
        
    }

    我的答案有问题,是2,1,6

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-14 08:41
    关注

    【以下回答由 GPT 生成】

    #include <stdio.h>
    int main() {
        int n = 0, m = 0, i = 0, j = 0, k = 0, sum[10001];
        int a[101], b[101], d[101];
    
        scanf("%d %d", &n, &m);
    
        for (i = 0; i < m; i++) {
            scanf("%d", &a[i]);
        }
    
        for (i = 0; i < m; i++) {
            scanf("%d", &b[i]);
        }
    
        for (i = 0; i < n; i++) {
            sum[i] = 0;
            for (j = 0; j < m; j++) {
                scanf("%d", &d[j]);
                if (d[j] == b[j]) {
                    sum[i] += a[j];  // 此处应该累加到sum[i]而不是sum[j],因为外层循环为i
                }
            }
        }
    
        for (i = 0; i < n; i++) {
            printf("%d\n", sum[i]);
        }
    
        return 0;
    }
    

    在原代码中,sum应该在对应的循环中累加,而且内部循环的累加应该加到sum[i]而不是sum[j]。已经优化并修改了代码,上述代码应该可以达到预期的效果。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月22日
  • 已采纳回答 11月14日
  • 创建了问题 11月13日

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?