在c++中对最小数组元素求和
Sum after smallest array element in C++
int modulusumma(int mas[], int skaits) { //1b)Elementu summa pec skaitla 0
int i,a,b;
for(i=0; i<skaits; i++)
mas[i]=abs(mas[i]);
int smallest = INT_MAX;
for (i=0; i<skaits; i++){
if (mas[i] < smallest) {
smallest = mas[i];
}
b=0;
for (i=0; i<skaits; i++)
if(mas[i]==smallest)
a=i;
if(a!=i)
for (i=a; i<skaits; i++)
b+=mas[i];
return b;
这个东西得到最小数之后的和,但它包括它并计算前一个,例如555555555555555555551111(包含20个整数的数组)的和将是9。我能做些什么来解决这个问题?对不起,我的英语不好,我需要做一个20个整数的数组,并得到最小的元素之后的元素的和。
您可能希望找到最小元素的索引,类似于(未经测试,修复了一些差一的错误):
size_t argmin( const size_t n, const int a[n] )
{
size_t m = 0;
for ( size_t i = 1; i < n; ++i )
if ( a[i] < a[m] )
m = i;
return m;
}
long sum_after_min( const size_t n, const int a[n] )
{
const size_t m = argmin( n, a );
long sum = 0;
if ( SIZE_MAX == m )
return 0; // Or else m+1 would underflow!
for ( size_t i = m + 1; i < n; ++i )
sum += a[i];
return sum;
}
另外,一定要指定如果最小的参数是重复的会发生什么。
相关文章:
- 数组元素打印的递归方法
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 为什么使用数组元素查找最大数字的程序不起作用?
- 数组元素更改值?
- 如何访问宏中定义的数组元素
- 将数组元素递增 1
- C++函数,它将数组、谓词和运算符作为参数,并将运算符应用于满足谓词的数组元素
- 存储指向动态数组元素的指针
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 在 std::map 中插入数组元素
- 使用指针访问数组元素时出现意外结果
- c++ 使用动态分配运算符反向数组元素
- 为什么在 c++ 中分配 char 数组元素时,分配的字符会被销毁?
- 缺少数组元素问题
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 删除在结构 c++ 中声明的数组元素
- Getter 和 Setter 用于类 C++ 中的数组元素
- 尝试递归获取数组元素的总和
- 使用SWIG将numpy数组元素(int)传递给c++int