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!!!!!
C语言代码优化:处理负数输入与绝对值计算
本文分析了一个C语言程序,原始版本需判断输入的负数,修正后使用abs()函数将所有数值转换为绝对值,简化条件判断,提升执行效率。输出结果时添加了换行符以保持格式清晰。
1076

被折叠的 条评论
为什么被折叠?



