#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
PTA 7-3 判断题.
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 【以下回答由 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]。已经优化并修改了代码,上述代码应该可以达到预期的效果。
【相关推荐】
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7587378
- 这篇博客你也可以参考下:PTA-7-3
- 除此之外, 这篇博客: PTA 7-3 数组排序中的 题目 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 高价求中通快递查询接口
- ¥15 解决一个加好友限制问题 或者有好的方案
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?