Вывести на печать все пары индексов массива - C (СИ)

  1. Здравствуйте, помогите пожалуйста дописать программу для динамических массивов.Задание: Даны 2 динамических массива размерность n. Вывести на печать все пары индексов, для которых a[i]*b[i]>10. Подсчитать число пар и сумму этих произведений. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 #include <stdio.h>   int *mem (int n); void vvod (int *mas1, int n); //void vvod (int *mas2, int n); int pr (int *mas1, int *mas2, int n); void show(int *mas1, int n);   void main () {     int n, rez;     int*mas1;     int*mas2;     printf ("\n Vvod razmera massivov");     scanf ("%d", &n);     mas1=mem (n);     mas2=mem (n);     printf ("\n Vvod elementov massiva 1");     vvod(mas1,n);     printf ("\n Vvod elementov massiva 2");     vvod(mas2,n);     rez=pr(mas1,mas2, n); }   int*mem (int n) {     int *m;     m=(int*)calloc(n, sizeof (int));     return m; }   void vvod (int*mas, int n) {     for (int i=0; i<n; i++)         scanf ("%d", mas +i); }   int pr (int*mas1, int*mas2, int n) {     int a=0;     int kol=0;     int par=0;     int sum=0;     for (int i=0; i<n; i++)     {         a=*(mas1+i) * *(mas2+i);         if (a>10)         {             par=i;             kol+=1;             sum+=a;             printf ("%5d", sum);         }     } } void show (int mas3, int kol) {     int i=0;     for (int i=0; i<=kol; i++)         printf ("%5d", (mas3+1)); }


textual

Код к задаче: «Вывести на печать все пары индексов массива - C (СИ)»

#include <iostream>
using namespace std;
 
int main()
{
    int i,N,Summa=0,KolVo=0;
    cout<<"Type N:\n";
    cin>>N;
    int *MasA=new int[N];
    int *MasB=new int[N];
    int *Hlp = new int[N];
    for(i=1;i<N;i++)
    {
        cout<<"Type value of Massiv A:\n"<<i;
        cin>>MasA[i];
        cout<<"Type value of Massiv B:\n"<<i;
        cin>>MasB[i];
        if(MasA[i]*MasB[i]>10)
        {
            Summa=Summa+MasA[i]*MasB[i];
            KolVo++;
            Hlp[i]=i;
        }
        else
            Hlp[i]=0;
    }
    cout<<"\nSUMMA:"<<Summa;
    cout<<"\nKolVo:"<<KolVo;
    for(i=1;i<N;i++)
    {
        if(Hlp[i]>0)
            cout<<"\nINDEXES:"<<Hlp[i];
 
    }
    delete MasA;
    delete MasB;
    delete Hlp;
    return 0;
}

СДЕЛАЙТЕ РЕПОСТ

9   голосов, оценка 3.778 из 5



Похожие ответы
  1. Дорогие знатоки, проблема следующая: при выводе строки на экран появляется символ переноса строки появление которого моему уму не постижимо (в программировании слабоват). Надеюсь на вашу помощь) Собственно проблема на скрине.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 #include #include #include #include #include   #define N 3   char predmet1[20]; char predmet2[20]; char predmet3[20];   char shif_stud[] = "Шифр студента"; char shif_grup[] = "Шифр группы"; char FIO[] = "Ф.И.О. студента"; char sred[] = "Средний балл";   float alg_1(float a, float b, float c) //Вычесление среднего балла студента {     float res = (a + b + c)/3;     return res; }   struct student {       int shif_stud; //Шифр студента     char FIO[20];     int shif_grup; //Шифр Группы     float ocenka1;     float ocenka2;     float ocenka3;     float sred; //Средний балл студента } stud[N];   int main(void) {     SetConsoleCP(1251);     SetConsoleOutputCP(1251);     setlocale(LC_ALL, "rus");     int i, vibor1, vibor2;     printf("Пожалуйста, введите дисциплины обучения студентов (предметы):\n");     printf("Введите название 1 - ого предмета (до 20-ти знаков):");     gets (predmet1);     printf("Введите название 2 - ого предмета (до 20-ти знаков):");     gets (predmet2);     printf("Введите название 3 - ого предмета (до 20-ти знаков):");     gets (predmet3);     printf("Как вы хотите получить информацию о студентах?\n");     printf("1. - Из файла\n");     printf("2. - Вручную\n");     scanf("%d", &vibor1);     FILE *fp;     switch (vibor1)     {         case 1:         fp = fopen("K16-1.txt", "r");         if((fp = fopen("K16-1.txt", "r")) == NULL)         {             printf("ОШИБКА! Файла не существует!\n");             printf("Пожалуйста, введите информацию:\n");         }         else         {             for(i = 0; i < N; i++)             {             fgets(stud[i].FIO, 19, fp);             fscanf(fp, "%d\n", &stud[i].shif_stud);             fscanf(fp, "%d\n", &stud[i].shif_grup);             fscanf(fp, "%f\n", &stud[i].ocenka1);             fscanf(fp, "%f\n", &stud[i].ocenka2);             fscanf(fp, "%f\n", &stud[i].ocenka3);             fscanf(fp, "%f\n", &stud[i].sred);             }         fclose(fp);         break;          }     case 2:         fp = fopen("K16-1.txt", "w");         for (i = 1; i < N; i++)         {             printf("Введите Ф.И.О. %d-го студента (до 20-ти знаков):\n", i);             fflush(stdin);             fgets(stud[i].FIO, 20, stdin);             fputs(stud[i].FIO, fp);             printf("Введите шифр %d-го студента (6 знаков):\n", i);             scanf("%d", &stud[i].shif_stud);             fprintf(fp, "%d\n", stud[i].shif_stud);             printf("Введите шифр группы %d-го студента (6 знаков):", i);             scanf("%d", &stud[i].shif_grup);             fprintf(fp, "%d\n", stud[i].shif_grup);             printf("Введите оценку студента по дисциплине %s (1 знак):", predmet1);             scanf("%f", &stud[i].ocenka1);             fprintf(fp, "%f\n", stud[i].ocenka1);             printf("Введите оценку студента по дисциплине %s (1 знак):", predmet2);             scanf("%f", &stud[i].ocenka2);             fprintf(fp, "%f\n", stud[i].ocenka2);             printf("Введите оценку студента по дисциплине %s (1 знак):", predmet3);             scanf("%f", &stud[i].ocenka3);             fprintf(fp, "%f\n", stud[i].ocenka3);             stud[i].sred = alg_1(stud[i].ocenka1, stud[i].ocenka2, stud[i].ocenka3);             fprintf(fp, "%f\n", stud[i].sred);         }         fclose(fp);         break;     }       system("cls");     while (vibor2 != 4)     {         printf("_____________________________________________________________________________________________\n");         printf("                        |-----------Меню----------|                                 \n");         printf("                                                                    \n");         printf("                    |  Выберите пожалуйста действие  |                          \n");         printf("                                                                    \n");         printf("            1. - Вывести список студентов, получающих степендию         \n");         printf("            2. - Список студентов, умеющих неудовлетворительные оценки  \n");         printf("            3. - Вывод оценок студента по всем дисциплинам              \n");         printf("            4. - Выход                                                  \n");         printf("_____________________________________________________________________________________________\n");         scanf("%d", &vibor2);         system("cls");         switch (vibor2)         {             case 1:                 printf("%-20s%-20s%-20s%-20s\n", shif_stud, shif_grup, FIO, sred);                 for (i = 0; i < N; i++)                 {                     if (stud[i].sred >= 4)                     {                         printf("%-20d%-20d%-20s%-20f\n", stud[i].shif_stud, stud[i].shif_grup, stud[i].FIO, stud[i].sred);                     }                 }                 getch();                 system("cls");                 break;             case 2:                 printf("%-20s%-20s%-20s%-20s\n", shif_stud, shif_grup, FIO, sred);                 for (i = 0; i < N; i++)                 {                     if (stud[i].sred < 3)                     {                         printf("%-21d%-20d%-20s%-20f\n", stud[i].shif_stud, stud[i].shif_grup, stud[i].FIO, stud[i].sred);                     }                 }                 getch();                 system("cls");                 break;             case 3:                 printf("%-20s%-20s%-20s%-20s%-20s%-20s\n", FIO, shif_grup, shif_stud, predmet1, predmet2, predmet3);                 for (i = 0; i < N; i++)                 {                     printf("%-20s", stud[i].FIO);                     printf("%-20d%-20d%-20f%-20f%-20f\n", stud[i].shif_grup, stud[i].shif_stud, stud[i].ocenka1, stud[i].ocenka2, stud[i].ocenka3);                 }                 getch();                 system("cls");                 break;             case 4:                 printf("До свидания!");                 getch();                 break;             default:                 printf("Неверное действие! Повторите ввод.");                 getch();                 system("cls");                 break;         }     } }

  1. Здравствуйте! Данная "программа" должна обрабатывать числа, расстояние между которыми меньше 5, а также находить среди таких двух чисел самое большее чётное произведение. КОМПИЛИРУЕТСЯ ВСЁ НОРМАЛЬНО, НО ИСПОЛЬНЯТЬ ЭТА ГАДЮКА НИЧО НЕ ХОЧЕТ ИМЕННО В СЛУЧАЕ, КОГДА НА ВХОД ПОСУТПАЕТ БОЛЕЕ 5 ЧИСЕЛ. Т.е. цикл for(i=5;i int main(void) {   char j,c;      int i;      int n;      int a[5];      int x;      int max=-1;           scanf("%d",&n);     for (i=0;i<=4;i++){         scanf("%d",&a[i]);         }     for (i=5;imax )&&  (a[j-1]*a[c]%2 ==0))                     max=a[c]*a[j-1];                                             }                     }                 for (j=0;j<4;j++){             a[j]=a[j+1];         }         a[4]=x;         }      if (max==-1)          printf("-1");     else printf ("%d",max);     getchar();     getchar();     return 0; }Добавлено через 9 минут Тэкс... Счётчик тут должен робить... Тэк... Вывод массива когда у его индекса чото вычитаем тоже работает... Угу... Кажется я как-то выхожу из границ массива, но я в упор не могу разглядеть этого... Так, падажжи еманаДобавлено через 37 секунд лол, разглядеть он не может, у тебя две строки где идут пляски с массивамми, там же очевидно и ошибкаДобавлено через 3 минуты эхх, пойти спать или сожжрать таки хлеб с пащтетом? но тогда изжога будет от паштета с хлебом, я не хочу изжоги, антиацида нет с собой

  1. zss, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?C++ (Qt)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #include #include #include #include struct TZap { char FIO[30];   double s_b, mat, xum, inf, fiz, gr, god; } Zap; int size = sizeof(TZap); FILE *Fz, *Ft; char File_Zap[] = "zapisi.dat"; char File_Rez[] = "rezult.txt"; void Out(TZap);   int main() { int kod, D_f, i = 0, j, kol;   double s_b, mat, xum, inf, fiz, gr, god; long len; TZap st, *mas_Z; Ft = fopen(File_Rez, "w"); while (true) { puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0"); scanf("%d", &kod); switch (kod) { case 1: if ((Fz = fopen(File_Zap, "wb")) == NULL) { puts("\n Create ERROR!"); //return; } fclose(Fz); printf("\n Create New File %s !\n", File_Zap); break; case 2: Fz = fopen(File_Zap, "ab"); printf("\n F.I.O. - "); fflush(stdin); gets(Zap.FIO); printf(" God rozdeniya - "); fflush(stdin); scanf("%lf", &Zap.god); printf(" Nomer gruppi - "); scanf("%lf", &Zap.gr); printf(" Fizika - "); scanf("%lf", &Zap.fiz); printf(" Matematika - "); scanf("%lf", &Zap.mat); printf(" Informatika - "); scanf("%lf", &Zap.inf); printf(" Xumuya - "); scanf("%lf", &Zap.xum);   Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;   fwrite(&Zap, size, 1, Fz); fclose(Fz); break; case 3: if ((Fz = fopen(File_Zap, "rb")) == NULL) { puts("\n Open ERROR!"); //return; } // printf("\n\t —-----------------— Informations —-------------------\n"); printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n"); // fprintf(Ft, "\n\t —-----------------— Informations —-------------------"); while (1) { if (!fread(&Zap, size, 1, Fz)) break; Out(Zap); } fclose(Fz); break; case 4: Fz = fopen(File_Zap, "rb"); D_f = fileno(Fz); len = filelength(D_f); kol = len / size; mas_Z = new TZap[kol]; // for (i = 0; i < kol; i++) fread((mas_Z + i), size, 1, Fz); fclose(Fz); printf("\n\t---— S O R T —---\n"); fprintf(Ft, "\n\t---— S O R T —---\n"); for (i = 0; i < kol - 1; i++) if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888 { } for (i = 0; i < kol; i++) Out(mas_Z[i]);   delete[]mas_Z; break; case 0: fclose(Ft); //888 //return; }     } }     void Out(TZap z) { printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); }Добавлено через 1 минутуQwerty_Wasd, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?C++ (Qt)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #include #include #include #include struct TZap { char FIO[30];   double s_b, mat, xum, inf, fiz, gr, god; } Zap; int size = sizeof(TZap); FILE *Fz, *Ft; char File_Zap[] = "zapisi.dat"; char File_Rez[] = "rezult.txt"; void Out(TZap);   int main() { int kod, D_f, i = 0, j, kol;   double s_b, mat, xum, inf, fiz, gr, god; long len; TZap st, *mas_Z; Ft = fopen(File_Rez, "w"); while (true) { puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0"); scanf("%d", &kod); switch (kod) { case 1: if ((Fz = fopen(File_Zap, "wb")) == NULL) { puts("\n Create ERROR!"); //return; } fclose(Fz); printf("\n Create New File %s !\n", File_Zap); break; case 2: Fz = fopen(File_Zap, "ab"); printf("\n F.I.O. - "); fflush(stdin); gets(Zap.FIO); printf(" God rozdeniya - "); fflush(stdin); scanf("%lf", &Zap.god); printf(" Nomer gruppi - "); scanf("%lf", &Zap.gr); printf(" Fizika - "); scanf("%lf", &Zap.fiz); printf(" Matematika - "); scanf("%lf", &Zap.mat); printf(" Informatika - "); scanf("%lf", &Zap.inf); printf(" Xumuya - "); scanf("%lf", &Zap.xum);   Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;   fwrite(&Zap, size, 1, Fz); fclose(Fz); break; case 3: if ((Fz = fopen(File_Zap, "rb")) == NULL) { puts("\n Open ERROR!"); //return; } // printf("\n\t —-----------------— Informations —-------------------\n"); printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n"); // fprintf(Ft, "\n\t —-----------------— Informations —-------------------"); while (1) { if (!fread(&Zap, size, 1, Fz)) break; Out(Zap); } fclose(Fz); break; case 4: Fz = fopen(File_Zap, "rb"); D_f = fileno(Fz); len = filelength(D_f); kol = len / size; mas_Z = new TZap[kol]; // for (i = 0; i < kol; i++) fread((mas_Z + i), size, 1, Fz); fclose(Fz); printf("\n\t---— S O R T —---\n"); fprintf(Ft, "\n\t---— S O R T —---\n"); for (i = 0; i < kol - 1; i++) if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888 { } for (i = 0; i < kol; i++) Out(mas_Z[i]);   delete[]mas_Z; break; case 0: fclose(Ft); //888 //return; }     } }     void Out(TZap z) { printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); }

  1. Добрый вечер! Дан массив M*N. Необходимо отсортировать ее по строкам так, чтобы вначале шли все положительные элементы, отсортированные по убыванию, а затем все остальные, отсортированные по возрастанию (если в строке имеются нули - переставить их в конец строки). Вывести получившуюся матрицу. У меня проблема с перестановкой нулей. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 #include     int main()     {   int N, M,t, i,j,k, mas[10][10]={0}, q;         printf("VVEDITE N,M \n");     scanf("%d%d", &N,&M);     printf("VVEDITE MASSIV \n");       for (i=0; i < N; i++)        for (j=0; j < M; j++)            scanf ("%d", &mas[i][j]);       for(k = 0; k < N; k++){     for(i = 0 ; i < M; i++){         for(j = i + 1; j < M; j++){               if((mas[k][i] < mas[k][j]) && (mas[k][i]!=0)){                       t = mas[k][i];                     mas[k][i] = mas[k][j];                     mas[k][j] = t;               }         }     } }   if (mas[i][j]<0) {     } {   for(k = 0; k < N; k++){         for(i = 0 ; i < M; i++){             for(j = i + 1; j < M; j++){                   if(mas[k][i] < mas[k][j]) {                       t = mas[k][i];                     mas[k][i] = mas[k][j];                     mas[k][j] = t;               }         }     } } } for(i = 0 ; i < M; i++)     {         for(j = 0; j < M; j++)             if (mas[i][j]==0)         {                 for ( q = j; q < N-1 ; q++)                 {                     mas[i][q] = mas[i][q + 1];                 }                 mas[N-1][M-1] = 0;           }     }   for (i=0; i < N; i++)        {for (j=0; j < M; j++)               printf ("%d\t", mas[i][j]);        printf (" \n");}   getch();}

  1. I need help,guys Нужно написать программу, которая выделяет из строки заданное количество слов, начиная со слова с заданным номером. Строка, количество слов, номер первого слова передаются в функцию в качестве параметров. При реализации функции запрещается пользоваться функциями стандартной библиотеки языка C. Под термином «слово» понимается любая последовательность символов, ограниченная любым количеством пробелов и/или символом начала/конца строки. С меня большущее спасибо.

  1. Строка, содержащая произвольный текст, состоит не более чем из 255 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, v — 3 раза и т. д

  1. Нужно написать рекурсивную функцию (программу) которая будет искать минимальный элемент в массиве.

  1. Помогите пожалуйста составить программу, которая печатает на экране квадратную матрицу, размерность которой вводит пользователь с клавиатуры. 1 1 . . . . 1 2 2 . . . 2 3 3 3 . 3 . . . . . n . . . 0

  1. Приветствую, ув. программисты, помогите пожалуйста с программкой. Задание: Разработать программу обработки строки символов в соответствии с заданным вариантом(Найти самое короткое слово). Считать, что строка оканчивается точкой, слова разделены пробелами. В программе предусмотреть ввод и вывод исходных данных и результатов