Другие языки программирования и технологии

помогите пожалуйста в ПРОГРАММИРОВАНИИ

делаю задачи в программе Microsoft Visual Studio. Си.
пример:
#include "stdafx.h"
#include "conio.h"

void printarr( int* a, int n)
{
for (int i = 0; i < n; i++)
printf("%d \n", a);
printf("\n");
}

int _tmain(int argc, _TCHAR* argv[])
{
int n = 5;
int a[5];
printf("Inputarray :");
for (int i = 0; i < n; i++)
scanf_s ("%d", &a);
printarr(a, n);

int imax = 0;
for(int i = 1; i < n; i++)
if (a > a[imax])
imax = i;

printf(" imax: %d\n", imax);
for (int i = 0; i < imax; i++)
a = 0;
printarr (a,n);
_getch();
return 0;
}

кто разбирается и сможет объяснить в ЛС пожалуйста.
http://vk.com/kakanya
или же сюда
Ян Мелько
Ян Мелько
726
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
void printarr(unsigned *, size_t);
unsigned maxarr(unsigned *, size_t);
unsigned * createarr(unsigned *, size_t);
unsigned * randomarr(unsigned *, size_t);
unsigned * zeroarr(unsigned *, size_t);
void cleararr(unsigned *);
void iniarr();
void cp1251();
void cp866();
int main() {     
    iniarr();
    return 0;
}
void iniarr() {
    unsigned * arr = NULL;
    size_t n = 5;
    arr = createarr(arr, n);
    printarr(arr, n);
    printf(" max = %u\n\n", maxarr(arr, n));
    arr = randomarr(arr, n);
    printarr(arr, n);
    printf(" max = %u\n\n", maxarr(arr, n));
    arr = zeroarr(arr, n);
    printarr(arr, n);
    cleararr(arr);
    _getch();
}
void cleararr(unsigned * a) { free(a); }
unsigned * zeroarr(unsigned * a, size_t size) { // заполнение нулями
    size_t n;
    srand((unsigned)time(NULL));
    if (a == NULL) a = (unsigned *)calloc(size, sizeof(unsigned));
    for (n = 0; n < size; n++) a[n] = 0;
    return a;
}
unsigned * randomarr(unsigned * a, size_t size) { // случайное заполнение
    size_t n;
    srand((unsigned)time(NULL));
    if (a == NULL) a = (unsigned *)calloc(size, sizeof(unsigned));
    for (n = 0; n < size; n++) a[n] = rand();
    return a;
}
unsigned * createarr(unsigned * a, size_t size) { // ручной ввод
    size_t n;
    cp1251();
    printf("\nВведите массив целых положительных чисел: \n\n");
    cp866();
    if (a == NULL) a = (unsigned *)calloc(size, sizeof(unsigned));
    for (n = 0; n < size; n++) {
        printf("a[%u] -> ", n);
        scanf_s("%u", &a[n]);
    } printf("\n");
    return a;
}
unsigned maxarr(unsigned * a, size_t size) {
    unsigned max = 0;
    size_t n;
    if (a != NULL) for (n = 0; n < size; n++) if (max < a[n]) max = a[n];
    return max;
}
void printarr(unsigned * a, size_t size) {
    size_t n;
    if (a != NULL) for (n = 0; n < size; n++) printf("%u ", a[n]);
    printf("\n\n");
}
void cp1251() { setlocale(LC_CTYPE, "Russian_Russia.1251"); }
void cp866() { setlocale(LC_CTYPE, "English_United.States.866"); }
РА
Рустем Алибеков
88 132
Лучший ответ