Ошибки при компиляции - исправить ошибки в коде - C (СИ)

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

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

Помогите исправить ошибки , не понимаю в чем может быть причина ...
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string.h>
 
void ctenie (int mas, int n ,int m)
{
     int i,j;
     printf(" Vvedite razmer matrici:\n" );
     scanf("%d%d",&n,&m);       
     for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++) 
       {
      scanf("%d",&mas[i][j]);
       }
    }
}
 
int random (int mas ,int n ,int m)
{
    int i,j;
    for(i=0; i < n; i++)
    {
        for(j=0; j < m; j++)
        {
            mas[i][j]= rand()%100 ;
        }
    }
}
 
int vivod (int mas, int n ,int m)
{
          int i,j;
          for (int i = 0; i < n; i++)
           {
            for(int j = 0; j < m; j++)
            printf(" Matrix :%d\n", mas[i][j]);
           }
}
int Max_Min (int mas, int n ,int m)
{
    
    int imax, jmax,imin,jmin;
    int i,j,max,min;
     min = mas[0][0];//ïðèñâГ*ГЁГўГ*ГҐГ¬ ìèГ*èìóì ïåðâîìó ýëåìåГ*ГІГі Г¬Г*òðèöû
     max = mas[0][0]; //ïðèñâГ*ГЁГўГ*ГҐГ¬ Г¬Г*êñèìóì ïåðâîìó ýëåìåГ*ГІГі Г¬Г*òðèöû
        for(i = 0; i < n; ++i)
          {  
              for(j = 0; j < n; ++j)
                  {     
                        if(max < mas[i][j])
                         max = mas[i][j];
                         imin = i;
                         jmin = j;
                                        
                        if(min > mas[i][j])
                         min = mas[i][j];
                         imin = i;
                         jmin = j;
                  }
          }
             printf("\nMax element s coord [%d][%d] raven %d", imax, jmax, mas[i][j]);
             printf("\nMin element s coord [%d][%d] raven %d", imin, jmin, mas[i][j]);            
}

int main(void)
{
    int key,n,m,i,j;
    int mas[100][100];
do {
        system("cls");
        printf("\n Menu");
        printf("\n 1.Ctenie s claviaturi.");
        printf("\n 2.Min_Max znacen i pozitii.");   
        printf("\n 3.Pemeniati mestami  2 stolbtsa.");
        printf("\n 4.Dobaviti stroku i zapolniti soglasno variantu ."); 
        printf("\n 5.Otsortirovati matritu po dobavlennoi stroke .");   
        printf("\n 6.Sgenerirovati matricu ."); 
        printf("\n 0. Vihod");
        printf("\n\t==>");
        scanf("%d",&key);
        switch(key) 
        {
                    
    case 1:
            system("cls");
            printf(" Vvedite razmer matrici:\n" );
            scanf("%d %d",&n,&m);
            vivod(mas,n,m);
            getch();
            break;                 
   
        }
      while(key!=0); 
  
    }
}
F:\c++\Dev-CppPortable\Lab2.cpp: In function `void ctenie(int, int, int)':
F:\c++\Dev-CppPortable\Lab2.cpp:16: error: invalid types `int[int]' for array subscript
 
F:\c++\Dev-CppPortable\Lab2.cpp: In function `int random(int, int, int)':
F:\c++\Dev-CppPortable\Lab2.cpp:28: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp: In function `int vivod(int, int, int)':
F:\c++\Dev-CppPortable\Lab2.cpp:39: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp: In function `int Max_Min(int, int, int)':
F:\c++\Dev-CppPortable\Lab2.cpp:47: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp:48: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp:53: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp:54: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp:58: error: invalid types `int[int]' for array subscript
 
F:\c++\Dev-CppPortable\Lab2.cpp:59: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp:64: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp:65: error: invalid types `int[int]' for array subscript
F:\c++\Dev-CppPortable\Lab2.cpp: In function `int main()':
F:\c++\Dev-CppPortable\Lab2.cpp:93: error: invalid conversion from `int (*)[100]' to `int'
F:\c++\Dev-CppPortable\Lab2.cpp:93: error:   initializing argument 1 of `int vivod(int, int, int)'
F:\c++\Dev-CppPortable\Lab2.cpp:101: error: expected `while' before '}' token
F:\c++\Dev-CppPortable\Lab2.cpp:101: error: expected `(' before '}' token
F:\c++\Dev-CppPortable\Lab2.cpp:101: error: expected primary-expression before '}' token
F:\c++\Dev-CppPortable\Lab2.cpp:101: error: expected `)' before '}' token
F:\c++\Dev-CppPortable\Lab2.cpp:101: error: expected `;' before '}' token

Решение задачи: «Ошибки при компиляции - исправить ошибки в коде»

textual
Листинг программы
// C-string-drob.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <locale.h>                     //подключаем библиотеки
 
void write(char p,int i)                //функция для вывода названия соответветствующего разряда числа, в ней передаём само число p и его разряд i(от 1 до 6)
{
if ((i==0)||(i==3))                     //если первый или 4-й разряд т.е. сотни тысяч и сотни
    {
    if (p=='1') printf("сто");
    if (p=='2') printf("двести");
    if (p=='3') printf("триста");
    if (p=='4') printf("четыреста");
    if (p=='5') printf("пятьсот");
    if (p=='6') printf("шестьсот");
    if (p=='7') printf("семьсот");
    if (p=='8') printf("восемьсот");
    if (p=='9') printf("девятьсот");
    }
if ((i==1)||(i==4))                         //если второй и 5-й т.е. десятки тысяч и десятки
    {
    if (p=='1') printf("десять");
    if (p=='2') printf("двадцать");
    if (p=='3') printf("тридцать");
    if (p=='4') printf("сорок");
    if (p=='5') printf("пятьдесят");
    if (p=='6') printf("шестьдесят");
    if (p=='7') printf("семьдесят");
    if (p=='8') printf("восемьдесят");
    if (p=='9') printf("девяносто");
    }
if ((i==2)||(i==5))                         //если третий и 6-й т.е. тысячи и еденицы
    {
    if (p=='1') printf("одна");
    if (p=='2') printf("две");
    if (p=='3') printf("три");
    if (p=='4') printf("четыре");
    if (p=='5') printf("пять");
    if (p=='6') printf("шесть");
    if (p=='7') printf("семь");
    if (p=='8') printf("восемь");
    if (p=='9') printf("девять");
    }
}
 
void main()                     //основная функция
{
    setlocale(LC_ALL,"");       //русский язык
    FILE *in;               //переменная для фаила
    int k,i,j;              //переменные бегунки
    float c,z;              //знаменатель и числитель
    i=0;
    char *ch,*zn;           //переменные для знаменателя и числителя, а точнее для их записи
    char S[1024];           //переменная для считывания всего что находится в фаиле
    if ((in=fopen("C:\\String.txt", "r"))!=NULL)            //если есть фаил и он не пустой
    {
        while (!feof(in))                           //пока не конец фаила
        {
            fscanf(in,"%s", &S[i]);                 //считываем поэлементно из фаила в S
            i++;
        }
        fclose(in);                                 //закрываем фаил
    }
    else printf("No file!");
    i=strlen(S);                                    //вычисляем размер строки S т.е. то кол-во символом что было записано в фаиле
    for (j=0;j<i;j++)
        if (S[j]=='/') k=j;                         //ищем в строке S где находится знак / и запоминаем его номер
    ch=new char [k+1];                              //создаём соот. размера массивы char-ов для числителя и знаменателя
    zn=new char [i-k];
    strncpy(ch,S,k);                                //копируем первые k-символом , т.е. всё что до знака / в строку для числителя
    for (j=k+1;j<i;j++)
        zn[j-k-1]=S[j];                             //аналогично для знаменателя только то , что полсе знака деления
    c=atoi(ch);                                     //функция которая переводит строку в число
    z=atoi(zn);
    c=c/z;                                          //после перевода высчитываем результат деления
    printf("Само число:  %f\n", c);                 //выводим результат деления с 6-ю знаками после запятой
    c=1000000*c;                                    //домножаем на 1000000 чтобы потом при 
    k=c;                                            //пероде в int у нас исчезло всё что после 6-го знака
    char s[20];                 
    char *p;                                        //перменные для первода строки в число
    int l;          
    p=itoa(k,s,10);                                 //вызываем функцию в 10-ричной систем счисления
    j=strlen(p);                                    //вычисляем размер строки, в которую перевели результат
    l=j;
    for (i=1;i<6;i++)
        if (p[j-1]=='0')
            j--;                                    //в цикле смотрим чтобы не было нолей на конце, т.е. например 12300 преходит в 123
    if (k==1) printf("Одна миллионная");
    else if (k==10) printf("Одна стотысячная");
        else if (k==100) printf("Одна десятитысячная");
            else if (k==1000) printf("Одна тысячная");
                else if (k==10000) printf("Одна сотая");
                    else if (k==100000) printf("Одна десятая");
                        else if (k==1000000) printf("одна целая");                      //условия на проверку одной чего-то там
                        else                                                            //если результат деления не равен одной
                        {
                            if (j==6) k=0;                                              //то смотрим размер строки
                            if (j==5) k=1;                                          //в зависимости от него 
                            if (j==4) k=2;                                      //т.е. то сколько нулей посел запятой идёт прежде чем мы встрети первый ненулевой элемент
                            if (j==3) k=3;                                  //сколько нулей то на столько смещаем номер разряда в дальнейшем
                            if (j==2) k=4;
                            if (j==1) k=5;
                            for (i=0;i<(6-k);i++)                           //поразрядно учитывая нули  сразу после запятой смотрим числа
                        {
                            if ((((i+k)==1)||((i+k)==4))&&(p[i]==1)&&(p[i+1]!=0))           //это условие если у нас числа 11,12,13....,19 - т.к. у нас эо числа исключения при написании, для них не подхордит общий случай описания
                            {
                                if (p[i+1]=='1') {printf("одиннадцать");i++;}
                                if (p[i+1]=='2') {printf("двенадцать");i++;}
                                if (p[i+1]=='3') {printf("тринадцать");i++;}
                                if (p[i+1]=='4') {printf("четырнадцать");i++;}
                                if (p[i+1]=='5') {printf("пятьнадцать");i++;}
                                if (p[i+1]=='6') {printf("шестьнадцать");i++;}
                                if (p[i+1]=='7') {printf("семьнадцать");i++;}
                                if (p[i+1]=='8') {printf("восемьнадцать");i++;}
                                if (p[i+1]=='9') {printf("девятьнадцать");i++;}
                            }
                            else write(p[i],i+k);                   //если чисел исклбчений нет то вывзываем функцию написания
                            if (i==(2-k)) printf(" тысяч(и)");      //если прошли третий разряд то пишем что это были тысячи
                            printf(" ");                                //добавляем пробельчики
                        }
                            k=k-(6-l);                          //это для того чтобы понять сколько нулей сразу после запятой
                            if (k==5) printf("десятых");
                            if (k==4) printf("сотых");
                            if (k==3) printf("тысячных");
                            if (k==2) printf("десятитысячных");
                            if (k==1) printf("стотысячных");
                            if (k==0) printf("миллионных");
                        }
    printf("\n");
    system("pause");
}

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


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

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

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