uint32_t algorytm (uint32_t a, uint32_t b, uint32_t c, uint32_t d, uint32_t
e, uint32_t f, uint32_t g, uint32_t h, uint32_t k[], uint32_t w[]){
for (int i = 0; i < 64; ++i){
uint32_t t1 = h + a + e + k[i] + w[i];
uint32_t t2 = a + b;
h = g; g = f; f = e; e = d + t1; d = c; c = b; b = a; a = t1 + t2;}
int main(){
uint32_t n[8] = {1,2,3,4,5,6,7,8}; // для примера
uint32_t a = n[0], b = n[1], c = n[2], d = n[3], e = n[4], f = n[5], g =
n[6], h = n[7];
algorytm (a, b, c, d, e, f, g, h, k[], w[]);
uint32_t m[0] = n[0] + a, m[1] =n[1] + b, m[2] =n[2] + c, m[3] =n[3] + d,
m[4] =n[4] + e, m[5] =n[5] + f, m[6] =n[6] + g, m[7] =n[7] + h;
return 0;
}
как все таки верно передать массив в функцию написано типа так: func(int a, int b, int w[], int i) где i это размер массива, но так не работает почему то. у меня два массива по 64 элемента, не могу сделать функцию
При вызове функции нужно писать не:
algorytm (a, b, c, d, e, f, g, h, k[], w[]);
а:
algorytm (a, b, c, d, e, f, g, h, k, w);
так, как вы передаете указаетли на массивы. Тобишь в определении ф-ции: int m[]
и int *m
- эквивалентны.
#include <stdio.h>
#define NUMBERS_NUM 10 // количество чисел в массиве
int sum(int* array, int numbers_num) {
int sum = 0;
for (int i = 0; i < numbers_num; ++i)
sum += array[i];
return sum;
}
int main() {
int array[NUMBERS_NUM] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// Когда мы пишем sum(array, ...), мы передаем в функцию адрес первого элемента массива (int*).
printf("%i\n", sum(array, NUMBERS_NUM));
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ребята, помогите написать перегруженную функцию, которая принимает на вход произвольный Callable объект: