Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 15
1

Ошибки на языке С

22.01.2020, 17:16. Показов 1187. Ответов 10

Столько ошибок вылезло, ничего токового в интернете нету
0
Миниатюры
Ошибки на языке С  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2020, 17:16
Ответы с готовыми решениями:

Ошибки при анализе программы на языке SFC
Здравсвуйте, при проверки блока на языке SFC возникает ошибки связанные не с текстом, а с файлами...

Могут ли пробелы в языке Python стать причиной ошибки?
скажите, могут ли пробелы между операторами языка или строками быть причиной вот этой ошибки....

Правильность кода по смыслу задачи на языке С++, ошибки в коде
Задача: Даны натуральное число n, действительная квадратная матрица порядка n, действительные...

Реализация алгоритма Шора на языке Haskell. Синтаксические ошибки
Всем доброго времени суток. На днях я начал изучать язык Haskell и мне попался алгоритм...

10
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
22.01.2020, 17:34 2
Дак это, вроде как, и не ошибки вовсе - должно работать, но есть вариант, что некорректно...
0
Модератор
Эксперт CЭксперт С++
4417 / 3987 / 740
Регистрация: 07.10.2015
Сообщений: 8,272
22.01.2020, 17:38 3
aguffa, ты бы, мил человек, весь код показал, причем в виде текста...
0
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 15
22.01.2020, 17:46  [ТС] 4
C
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
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
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#include <conio.h>
#include <io.h>
#include <limits.h>
 
int A[55];
int B[8][7];
 
 
int main(void)
{
    srand(time(NULL));
    printf("===1:===\n");
    inputArrayA();
    showArrayA();
    int maxIndex = getIndexOfMaxNum();
    printf("index of max :%d\n", maxIndex+1);
    int minIndex = getIndexOfMinNum();
    printf("index of min :%d\n", minIndex+1);
    int first, second; 
    if(maxIndex < minIndex){
        first = maxIndex;
        second = minIndex;
    }else{
        first = minIndex;
        second = maxIndex;
    }
    int i, count1 = 0, count2 = 0, count3 = 0;
    double avrg1 = 0, avrg2 = 0, avrg3 = 0;
    
    for (i=0; i< 55; i++) {
        if (A[i] % 2 == 0) {
            if(i>0 && i<first){
                avrg1+=A[i];
                count1++;
            }
            else if(i > first && i < second){
                avrg2+=A[i];
                count2++;
            }
            else if(i > second && i < 55){
                avrg3+=A[i];
                count3++;
            }
        }
    }
    avrg1 = avrg1/count1;
    avrg1 = avrg2/count2;
    avrg1 = avrg3/count3;
    
    printf("average result [0-%d] :%f\n", first+1, avrg1);
    printf("average result [%d-%d] :%f\n", first+1, second+1, avrg2);
    printf("average result [%d-%d] :%f\n", second+1, 55, avrg3);
    printf("\n");
    printf("===2:===\n");
    inputArrayB();
    showArrayB();
    printf("min result of A[%d] is %d\n",minIndex, A[minIndex]);
    int j, minB = 1000, minI = 0, minJ = 0;
    for (i=0; i<8; i++) {
        for (j=0; j<7; j++){
            if(B[i][j]< minB) {
                minB = B[i][j];
                minI = i;
                minJ = j;
            }
        }
    }
    printf("min result of B[%d][%d] is %d\n",minI,minJ,  B[minI][minJ]);
    printf("swap result \n");
    
    int buf = A[minIndex];
    A[minIndex] = B[minI][minJ];
    B[minI][minJ] = buf;
    
    showArrayA();
    showArrayB();
    
    printf("\n");
    printf("===3:===\n");
    IntegralSin();
    Integral();
}
 
void Integral(){
    double N = 35;
    double b = 3, a = -0.5, step = (b-a)/N;
    double result = 0, tmp = a;
    int i;
    for(i = 0; i < 35; i++){
        if(tmp != 1) result += 1/(1-tmp);
        tmp+=step;
        tmp = round(tmp*100)/100.0;
    }
    result = result * step;
    printf("integral of 1/(1-x) result: %f\n", result );
}
 
void IntegralSin(void){
    double N = 35;
    double b = 1.5, a = -3, step = (b-a)/N;
    double result = 0, tmp = a;
    int i;
    for(i = 0; i < 35; i++){
        result += pow(sin(tmp), 3);
        tmp+=step;
    }
    result = result * step;
    printf("integral of sin^3 result: %f\n", result );
}
 
int getIndexOfMaxNum()
{
    int i, value = 0, index = 0;
    for (i=0; i<55; i++) {
        if(value < A[i]) {
            value = A[i];
            index = i;
        }
    }
    return index;
}
 
int getIndexOfMinNum()
{
    int i, value = INT_MAX, index = 0;
    for (i=0; i<55; i++) {
        if(value > A[i]) {
            value = A[i];
            index = i;
        }
    }
    return index;
}
 
void showArrayA(void)
{
    int i;
    for (i=0; i<55; i++) printf("[%d]", A[i]);
    printf("\n");
    printf("\n");
}
 
void showArrayB()
{
    int i, j;
    for (i=0; i<8; i++) {
        for (j=0; j<7; j++){
            printf("[%d]", B[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}
 
 
void inputArrayA()
{
    int i;
    for (i=0; i<55; i++) A[i] = rand() % 500 +1 ; //scanf("%d", &A[i]);
}
0
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 15
22.01.2020, 17:48  [ТС] 5
и еще, я тупенький, вот у меня в консоле не открывается дальше первого задания
0
Миниатюры
Ошибки на языке С  
Модератор
Эксперт CЭксперт С++
4417 / 3987 / 740
Регистрация: 07.10.2015
Сообщений: 8,272
22.01.2020, 18:07 6
Лучший ответ Сообщение было отмечено aguffa как решение

Решение

aguffa, добавил кое-что... Вообще странно, как код вообще компилился...
В логику работы не вникал... Смотри сам...
C
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
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#include <conio.h>
#include <io.h>
#include <limits.h>
#include <math.h>
 
int A[55];
int B[8][7];
 
void Integral();
void IntegralSin(void);
int getIndexOfMaxNum();
int getIndexOfMinNum();
void showArrayA(void);
void showArrayB();
void inputArrayA();
void inputArrayB();
 
int main(void)
{
    srand(time(NULL));
    printf("===1:===\n");
    inputArrayA();
    showArrayA();
    int maxIndex = getIndexOfMaxNum();
    printf("index of max :%d\n", maxIndex + 1);
    int minIndex = getIndexOfMinNum();
    printf("index of min :%d\n", minIndex + 1);
    int first, second;
    if (maxIndex < minIndex) {
        first = maxIndex;
        second = minIndex;
    }
    else {
        first = minIndex;
        second = maxIndex;
    }
    int i, count1 = 0, count2 = 0, count3 = 0;
    double avrg1 = 0, avrg2 = 0, avrg3 = 0;
 
    for (i = 0; i < 55; i++) {
        if (A[i] % 2 == 0) {
            if (i > 0 && i < first) {
                avrg1 += A[i];
                count1++;
            }
            else if (i > first && i < second) {
                avrg2 += A[i];
                count2++;
            }
            else if (i > second && i < 55) {
                avrg3 += A[i];
                count3++;
            }
        }
    }
    avrg1 = avrg1 / count1;
    avrg1 = avrg2 / count2;
    avrg1 = avrg3 / count3;
 
    printf("average result [0-%d] :%f\n", first + 1, avrg1);
    printf("average result [%d-%d] :%f\n", first + 1, second + 1, avrg2);
    printf("average result [%d-%d] :%f\n", second + 1, 55, avrg3);
    printf("\n");
    printf("===2:===\n");
    inputArrayB();
    showArrayB();
    printf("min result of A[%d] is %d\n", minIndex, A[minIndex]);
    int j, minB = 1000, minI = 0, minJ = 0;
    for (i = 0; i < 8; i++) {
        for (j = 0; j < 7; j++) {
            if (B[i][j] < minB) {
                minB = B[i][j];
                minI = i;
                minJ = j;
            }
        }
    }
    printf("min result of B[%d][%d] is %d\n", minI, minJ, B[minI][minJ]);
    printf("swap result \n");
 
    int buf = A[minIndex];
    A[minIndex] = B[minI][minJ];
    B[minI][minJ] = buf;
 
    showArrayA();
    showArrayB();
 
    printf("\n");
    printf("===3:===\n");
    IntegralSin();
    Integral();
}
 
void Integral() {
    double N = 35;
    double b = 3, a = -0.5, step = (b - a) / N;
    double result = 0, tmp = a;
    int i;
    for (i = 0; i < 35; i++) {
        if (tmp != 1) result += 1 / (1 - tmp);
        tmp += step;
        tmp = round(tmp * 100) / 100.0;
    }
    result = result * step;
    printf("integral of 1/(1-x) result: %f\n", result);
}
 
void IntegralSin(void) {
    double N = 35;
    double b = 1.5, a = -3, step = (b - a) / N;
    double result = 0, tmp = a;
    int i;
    for (i = 0; i < 35; i++) {
        result += pow(sin(tmp), 3);
        tmp += step;
    }
    result = result * step;
    printf("integral of sin^3 result: %f\n", result);
}
 
int getIndexOfMaxNum()
{
    int i, value = 0, index = 0;
    for (i = 0; i < 55; i++) {
        if (value < A[i]) {
            value = A[i];
            index = i;
        }
    }
    return index;
}
 
int getIndexOfMinNum()
{
    int i, value = INT_MAX, index = 0;
    for (i = 0; i < 55; i++) {
        if (value > A[i]) {
            value = A[i];
            index = i;
        }
    }
    return index;
}
 
void showArrayA(void)
{
    int i;
    for (i = 0; i < 55; i++) printf("[%d]", A[i]);
    printf("\n");
    printf("\n");
}
 
void showArrayB()
{
    int i, j;
    for (i = 0; i < 8; i++) {
        for (j = 0; j < 7; j++) {
            printf("[%d]", B[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}
 
 
void inputArrayA()
{
    int i;
    for (i = 0; i < 55; i++) A[i] = rand() % 500 + 1; //scanf("%d", &A[i]);
}
 
void inputArrayB()
{
    int i, j;
    for (i = 0; i < 8; i++) {
        for (j = 0; j < 7; j++) {
            B[i][j] = rand() % 500 + 1;
        }
    }
}
1
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 15
22.01.2020, 18:23  [ТС] 7
спасибо, а не знаешь почему в консоль только первое задание выводит? я скрин выше приклыдвал, и с твоим кодом та же штука
0
Модератор
Эксперт CЭксперт С++
4417 / 3987 / 740
Регистрация: 07.10.2015
Сообщений: 8,272
22.01.2020, 18:30 8
aguffa, у меня работает как положено:
Ошибки на языке С

Рекомендую пройтись под отладчиком.
1
21 / 17 / 4
Регистрация: 31.05.2016
Сообщений: 67
23.01.2020, 07:56 9
Цитата Сообщение от aguffa Посмотреть сообщение
avrg1 = avrg1/count1;
    avrg1 = avrg2/count2;
    avrg1 = avrg3/count3;
Всю программу вдумчиво не читала, но за процитированное глаз зацепился. Тут точно написано то, что имелось в виду?
0
1443 / 861 / 559
Регистрация: 25.04.2016
Сообщений: 2,356
23.01.2020, 18:03 10
Что-то мне больно на это смотреть..
C
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <time.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
void   inputArray   (int *a, int size);
void   showArray    (int *a, int size);
void   show2dArray  (int b[][7], int rows, int cols);
int    getIndexMax  (int *a, int size);
int    getIndexMin  (int *a, int size);
double Integral     (double N, double b, double a);
double IntegralSin  (double N, double b, double a);
 
int main (void)
{
    srand( (unsigned int)time(NULL)/2 );
    int i, a[55];
 
    printf("===1:===\n");
    inputArray(a, 55);      // заполняем массив a[] случайными
    showArray(a, 55);       // и выводим его на экран
 
    int maxIndex = getIndexMax(a, 55);   // находим позицию максимального и
    int minIndex = getIndexMin(a, 55);   // минимального элементов a[]
    printf("\n");
    printf("index of max: %d\n", maxIndex + 1);
    printf("index of min: %d\n", minIndex + 1);
 
    int first = (maxIndex < minIndex)? maxIndex : minIndex;
    int secnd = (maxIndex < minIndex)? minIndex : maxIndex;
 
    int sum[3] = {0};
    int cnt[3] = {0};
    for (i = 0; i < 55; i++) {
        if (i <= first)                { sum[0] += a[i]; cnt[0]++; }
        if (i >= first && i <= secnd)  { sum[1] += a[i]; cnt[1]++; }
        if (i >= secnd)                { sum[2] += a[i]; cnt[2]++; }
    }
 
    double avg[3];
    // при вычислении avg возможно деление на 0, так что учтем это:
    for (i=0; i<3; i++)
        avg[i] = (double)sum[i] / ((cnt[i] > 0)? cnt[i] : 1);
 
    printf("\n");
    printf("average result [%02d-%02d]: %7.3lf\n",       1,  first+1,  avg[0]);
    printf("average result [%02d-%02d]: %7.3lf\n", first+1,  secnd+1,  avg[1]);
    printf("average result [%02d-%02d]: %7.3lf\n", secnd+1,       55,  avg[2]);
 
    int b[8][7];
    printf("\n===2:===\n");
    for (i=0; i<8; i++)         // заполняем b[][] случайными
        inputArray(b[i], 7);
    show2dArray(b, 8, 7);       // и выводим его на экран
 
    int k = 0;
    for (i=1; i<56; i++)                        // находим позицию мини-
        if (b[i/7][i%7] < b[k/7][k%7]) k = i;   // мального элемента b[][]
    int minI = k/7;
    int minJ = k%7;
    printf("\n");
    printf("min result of A[%d] is %d\n", minIndex, a[minIndex]);
    printf("min result of B[%d][%d] is %d\n", minI, minJ, b[minI][minJ]);
 
    int buf = a[minIndex];          // меняем a[min] и b[min][min] местами
    a[minIndex] = b[minI][minJ];
    b[minI][minJ] = buf;
 
    printf("\nswap result\n");
    showArray(a, 55);               // выводим получившиеся массивы a[]
    printf("\n");
    show2dArray(b, 8, 7);           // и b[] на экран
 
    printf("\n===3:===\n");
    printf("integral of sin^3 result: %lf\n", IntegralSin(35, 1.5f, -3.0f));
    printf("integral of 1/(1-x) result: %lf\n", Integral(35, 3, -0.5f));
    return 0;
}
// ------------------------------------------------------------
void inputArray (int *a, int size) {
    for (int i = 0; i < size; i++)
        a[i] = 1 + rand() %500;
}
// ------------------------------------------------------------
void showArray (int *a, int size) {
    for (int i = 0; i < size; i++)
        printf("%4d", a[i]);
    printf("\n");
}
// ------------------------------------------------------------
void show2dArray (int b[][7], int rows, int cols) {
    for (int i = 0; i < rows; i++)
        showArray(b[i], cols);
}
// ------------------------------------------------------------
int getIndexMax (int *a, int size) {
    int i, max = 0;
    for (i=1; i<size; i++)
        if (a[i] > a[max]) max = i;
    return max;
}
// ------------------------------------------------------------
int getIndexMin (int *a, int size) {
    int i, min = 0;
    for (i=1; i<size; i++)
        if (a[i] < a[min]) min = i;
    return min;
}
// ------------------------------------------------------------
double Integral (double N, double b, double a) {
    double step = (b - a) / N;
    double result = 0, tmp = a;
    for (int i = 0; i < 35; i++) {
        if (tmp != 1) result += 1 / (1 - tmp);
        tmp += step;
        tmp = round(tmp * 100) / 100.0;
    }
    return result * step;
}
// ------------------------------------------------------------
double IntegralSin (double N, double b, double a) {
    double step = (b - a) / N;
    double result = 0, tmp = a;
    for (int i = 0; i < 35; i++) {
        result += pow(sin(tmp), 3.0f);
        tmp += step;
    }
    return result * step;
}
// ------------------------------------------------------------
1
Модератор
Эксперт CЭксперт С++
4417 / 3987 / 740
Регистрация: 07.10.2015
Сообщений: 8,272
23.01.2020, 18:10 11
Цитата Сообщение от stake-k26 Посмотреть сообщение
Что-то мне больно на это смотреть.
есть такое дело... С одной стороны, свой код - это сила! Полезно самому пошевелить мозгами... С другой, ты прав, надо учиться, как правильно писать...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2020, 18:10

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Проверить программно код на языке Object Pascal на синтаксические ошибки
Никто не подскажет, как проверить программно код на языке Object Pascal на синтаксические ошибки?

Доброго времени суток. Нужно найти ошибки в программе на языке Delphi по перестановке строк в матрице
Задание следующее: написать программу в Delphi, которая переставляет строки матриц по возрастанию...

нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как)
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; void main() { int xa, ya, xb, yb;...

как этот код на языке с++ будет выглядить на языке php?
#include &lt;iostream&gt; using namespace std; const int LEN = 80; class instrument{ private: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.