Помогите найти ошибкув коде! - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#include <conio.h>
#include <math.h>
double A(double i, double j)    
{
    double a;
    i++;                 
    j++;                
 
    if(i>j) a=acos((i+j)/(2*i+3*j));            
    else if(i<j) a=cos(i+j);    
    else a=1.0;
    return 1.0/a;
}
 
void FillMatr (double **, int );
void PrintMatr (double **, int );
 
void FillMatr (double **Ar, int n)
{
        int i, j;
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            Ar[i][j]=A(i,j);
        }
}
 
//////////////////////////////////////////////////////////////////////////////
 
void PrintMatr (double **Ar, int n)
{
        int i, j;
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            {
                printf("%-8.3lf ", Ar[i][j]);
            }
             printf(" \n");
        }
}

int main (void)
{
    unsigned N;
    double **Ar;        // äâóìåðГ*ûé Г¬Г*Г±Г±ГЁГў
    double B[15];           // Г¬Г*Г±Г±ГЁГў Г± ñóììГ*ìè ñòðîê
    
    do      // ââîä N
    {
        printf("\n\tProgram makes array N*N (0<N<=15).\nEnter N:");
        scanf("%u", &N);
    }while(N>15);
    
    FillMatr(Ar,N);    
    PrintMatr(Ar,N); 

// Ïîäñ÷åò  ñóìì ñòðîê
    for(int i=0; i<N; i++)
    {
        B[i]=0.0;
        for(int j=0; j<N; j++) B[i]+= (Ar[i][j]);
    }
// Г‡Г*ïðîñ ГЁ âûâîä Г*ГіГ¦Г*îé ñòðîêè
    int K=0;
    printf("\t\nPleas enter number of string, K: \n");
    scanf("%d", &K);
    printf("%7.2lf", B[K-1]);
    
    printf("\nPress any key to exit...");
    getch();
}

Решение задачи: «Помогите найти ошибкув коде!»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double A(double i, double j)    
{
    double a = 1.0;
    i++;                             
    j++;                                
    if(i>j) 
        a=acos((i+j)/(2*i+3*j));                        
    else 
        a=cos(i+j);        
    return 1.0/a;
}
 
void FillMatr (double Ar[][15], int n)
{
        int i, j;
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            Ar[i][j]=A(i,j);
        }
}
 
void PrintMatr (double Ar[][15], int n)
{
        int i, j;
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            {
                printf("%-8.3lf ", Ar[i][j]);
            }
             printf(" \n");
        }
}
 
 
int main (void)
{
        unsigned N;
        double Ar[15][15];            // äâóìåðГ*ûé Г¬Г*Г±Г±ГЁГў
        double B[15];                 // Г¬Г*Г±Г±ГЁГў Г± ñóììГ*ìè ñòðîê
        
        do              // ââîä N
        {
                printf("\n\tProgram makes array N*N (0<N<=15).\nEnter N:");
                scanf("%u", &N);
        }while(N>15);
        
        FillMatr(Ar,N);    
        PrintMatr(Ar,N); 
        
 
// Ïîäñ÷åò  Г±ГіГ¬Г¬ ñòðîê
        for(int i=0; i<N; i++)
        {
                B[i]=0.0;
                for(int j=0; j<N; j++) B[i]+= (Ar[i][j]);
        }
// Г‡Г*ïðîñ ГЁ âûâîä Г*ГіГ¦Г*îé ñòðîêè
        int K=0;
    printf("\t\nPleas enter number of string, K: \n");
    scanf("%d", &K);
    printf("%7.2lf", B[K-1]);
        
    printf("\nPress any key to exit...");
        getch();
        return 0;
}

Объяснение кода листинга программы

  1. Функция FillMatr заполняет матрицу Ar значениями, возвращаемыми функцией A(i,j), где i и j являются индексами элементов матрицы.
  2. Функция PrintMatr выводит содержимое матрицы Ar на экран.
  3. В функции main используется цикл do-while, чтобы пользователь мог ввести допустимое значение размера матрицы N.
  4. После заполнения и печати матрицы Ar, значения элементов матрицы B суммируются, чтобы получить среднее значение.
  5. Затем пользователю предлагается ввести количество строк для вывода среднего значения.
  6. В конце программы пользователю предлагается нажать любую клавишу для выхода из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы