2024.2.27
错误版本:刚开始写的提交上去显示超时
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[50];
int t,i,j,n,sum=0;
scanf("%d",&t);
for(i=0;i<t;t++)
{
sum=0;
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&a[j]);
if(a[j]<0)
{
a[j]=-a[j];
}
sum+=a[j];
}
printf("%d",sum);
}
return 0;
}
提交结果:
修正版本:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[50];
int t, i, j, n, sum;
scanf("%d", &t);
for(i = 0; i < t; i++)
{
sum = 0;
scanf("%d", &n);
for(j = 0; j < n; j++)
{
scanf("%d", &a[j]);
a[j] = abs(a[j]); // 取绝对值
sum += a[j];
}
printf("%d\n", sum); // 输出结果并换行
}
return 0;
}
提交结果:
总结1:
1.在代码中,输入的数值可能包含负数,而程序在计算每个数的绝对值时使用了 abs()
函数。这样做可以避免负数对计算结果的影响,同时也减少了对条件判断的需求,从而提高了程序的执行效率。因为使用了 abs()
函数,无需再对每个输入的数值进行判断是否为负数,从而避免了额外的比较操作,提高了程序的运行速度。
2.输出一定不要忘记加转行符\n!!!!!