Ошибки при компиляции - исправить ошибки в коде - 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"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д