aaa?我错了?看不出来……
2024-05-22 19:42:00
发布于:广东
27阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[7][2],b[7],mx,date=-1,mxmx=-1;
for(int i=0;i<7;i++)
{
for(int j=0;j<2;j++)
{
scanf("%d",&a[i][j]);
}
b[i]=a[i][0]+a[i][1];
}
for(int i=0;i<7;i++)
{
if(b[i]>8)
{
mxmx=mx;
mx=max(mx,b[i]);
if(mx>mxmx){
date=i;
}
}
}
printf("%d",date);
return 0;
/*
你的代码在日期时存在一些问题。首先,变量 mxmx 和 date 在初始化时没有给定值,这可能导致未定义的行为。其次,你对 mxmx 和 date 的更新逻辑有误。在寻找最不高兴的日期时,你需要记录下当前最大值以及对应的日期,但你的代码只在找到比 mx 更大的值时更新 date,这可能导致无法正确地找出最不高兴的日期。
此外,你的代码在找到第一个超过8小时的日期后就立即打印输出,这不符合题目要求。你应该在遍历完整个数组后再输出结果,以确保比较了所有日期。
基于上述问题,你可以尝试以下改进:
初始化 mxmx 和 date 变量,例如 mxmx = -1 和 date = -1,以表示还没有找到不高兴的日期。
修改 mxmx 和 date 的更新逻辑,当 b[i] > 8 时,更新 mxmx 为 b[i],同时更新 date 为 i。
移除原先在循环内部的输出语句,改为在循环结束后输出 date。
请注意,这是一个启发式的建议,你需要根据这些建议自行修改代码并测试。这样,你不仅能发现错误,还能更好地理解如何优化代码。如果你在修改后还有疑问,可以继续提问。
*/
}
全部评论 1
#include <bits/stdc++.h>
using namespace std;int main(){
int a[15],ma = 0,b[8] , s = 0;
for(int i = 1;i <= 14;i++){
cin>>a[i];
}
b[1] = a[1] + a[2];
b[2] = a[3] + a[4];
b[3] = a[5] + a[6];
b[4] = a[7] + a[8];
b[5] = a[9] + a[10];
b[6] = a[11] + a[12];
b[7] = a[13] + a[14];
for(int i = 1;i <= 7;i++){
if(b[i]>ma){
ma = b[i];
s = i;
}
}
cout<<s;
return 0;
}你对一下
2024-07-19 来自 浙江
0
有帮助,赞一个