Форум программистов, компьютерный форум CyberForum.ru

Где тут ошибка? - C++

Восстановить пароль Регистрация
 
BioShark
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 38
26.01.2010, 16:21     Где тут ошибка? #1
Обьясните, что неправильно в этой программе.

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
#include <iostream>    
using namespace std;    
void swap (int* a, int *b);  
 int main (int argc, char *argv[])    
{    
    
    int A[6];    
    int i, j;
    for(int i = 1; i < 6; i++)
    {
        cout << "Array[" << i << "] = ";
        cin >> A[i];
    }
    
    cout << "My List before sort :\t"<< A[0] << A[1] << A[2] << A[3] << A[4] << A[5] << A[6] << "\n";    
    for (i= 1; i <= 6; i++)    
    {    
        j= i;    
        while (A[j]<A[j-1])    
        {    
            swap (A[j], A[j-1]);    
            j=j-1;    
        }    
    }    
    cout << "My list after sort :\t"<<A[0]<<A[1]<<A[2]<<A[3]<<A[4]<<A[5]<<A[6]<< "\n\n";    
    return 0;    
}    
void swap (int *a, int *b)    
{    
    int temp;    
    temp=*a;    
    *a=*b;    
    *b=temp;    
}
опишите, пожалуйста , построчно, какие строки за что отвечают, в часности :
C++
1
2
void swap (int* a, int *b);  
 int main (int argc, char *argv[])
и
C++
1
2
3
4
5
6
7
void swap (int *a, int *b)    
{    
    int temp;    
    temp=*a;    
    *a=*b;    
    *b=temp;    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 16:21     Где тут ошибка?
Посмотрите здесь:

C++ В чём тут ошибка?
C++ В чём тут ошибка?
C++ Где тут ошибка, подскажите плз!
Где тут отличия? C++
в чём тут ошибка? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mulat
7 / 7 / 0
Регистрация: 09.01.2009
Сообщений: 41
26.01.2010, 16:26     Где тут ошибка? #2
В 9-й строчке ошибка. Надо написать i от 0, а не от 1.
BioShark
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 38
26.01.2010, 16:57  [ТС]     Где тут ошибка? #3
С ошибкой разобрался...
Обьясните плиз, что такое argc и *argv[]в функции main и какую функцию выполняют операторы * и []:
C++
1
2
void swap (int* a, int *b);  
 int main (int argc, char *argv[])
C++
1
2
3
4
5
6
7
void swap (int *a, int *b)    
{    
    int temp;    
    temp=*a;    
    *a=*b;    
    *b=temp;    
}
Кирюха
 Аватар для Кирюха
32 / 30 / 2
Регистрация: 10.11.2009
Сообщений: 123
26.01.2010, 17:09     Где тут ошибка? #4
Цитата Сообщение от BioShark Посмотреть сообщение
С ошибкой разобрался...
Обьясните плиз, что такое argc и *argv[]в функции main

C++
1
 int main (int argc, char *argv[])

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

test.exe hello goodbye

а вообще, почитай в интернете. например тут

Цитата Сообщение от BioShark Посмотреть сообщение
и какую функцию выполняют операторы * и []

C++
1
2
3
4
5
6
7
8
void swap (int* a, int *b);  
void swap (int *a, int *b)    
{    
    int temp;    
    temp=*a;    
    *a=*b;    
    *b=temp;    
}
* - это указатель. батенька, вам надо читать книги.. это ведь самые основы!
про указатели тоже вполне реально найти информацию
например тут
Slav1991
0 / 0 / 1
Регистрация: 07.01.2010
Сообщений: 44
26.01.2010, 18:56     Где тут ошибка? #5
помогите пожалуйста, что не так с выводом??
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main( )
{   const int B=7;
    const float D=3.5;
    float S,F,AN,AK,HA,A,X;
    int C;
    printf ("vvod AN-");
    scanf ("%f",&AN);
    printf ("vvod AK-");
    scanf ("%f",&AK);
    printf ("vvod HA-");
    scanf ("%f",&HA);
    printf ("vvod C-");
    scanf ("%d",&C);
    X=0.01*HA;
    A=AN;
    while (A<=AK+X)
    {
        if (A-B>=0)
        S=A*(D+B-C)+pow(A-B,1/2);
        else
        printf ("F i S net");
        if ((A<=0)||(A==1))
            printf ("S=%6.2f F-net A=%6.2f\n",S,A);
        else
 
                if ((A!=1-X)&&(A!=1+X))
                {
                F=S/log10(A);
                printf ("S=%6.2f  A=%6.2f  F=%6.2f\n", S,A,F);
                }
 
        A=A+HA;
Добавлено через 5 минут
помогите очень надо!!!!
Кирюха
 Аватар для Кирюха
32 / 30 / 2
Регистрация: 10.11.2009
Сообщений: 123
26.01.2010, 19:16     Где тут ошибка? #6
Цитата Сообщение от Slav1991 Посмотреть сообщение
помогите пожалуйста, что не так с выводом??
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main( )
{   const int B=7;
    const float D=3.5;
    float S,F,AN,AK,HA,A,X;
    int C;
    printf ("vvod AN-");
    scanf ("%f",&AN);
    printf ("vvod AK-");
    scanf ("%f",&AK);
    printf ("vvod HA-");
    scanf ("%f",&HA);
    printf ("vvod C-");
    scanf ("%d",&C);
    X=0.01*HA;
    A=AN;
    while (A<=AK+X)
    {
        if (A-B>=0)
        S=A*(D+B-C)+pow(A-B,1/2);
        else
        printf ("F i S net");
        if ((A<=0)||(A==1))
            printf ("S=%6.2f F-net A=%6.2f\n",S,A);
        else
 
                if ((A!=1-X)&&(A!=1+X))
                {
                F=S/log10(A);
                printf ("S=%6.2f  A=%6.2f  F=%6.2f\n", S,A,F);
                }
 
        A=A+HA;
Добавлено через 5 минут
помогите очень надо!!!!
а что программа вообще делать должна? что за ошибка?
я попробовал вставитьь твой код и она не хотел работать из-за отсутствия двух скобок
что именно не так в выводе?

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
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main( )
{       const int B=7;
        const float D=3.5;
        float S,F,AN,AK,HA,A,X;
        int C;
        printf ("vvod AN-");
        scanf ("%f",&AN);
        printf ("vvod AK-");
        scanf ("%f",&AK);
        printf ("vvod HA-");
        scanf ("%f",&HA);
        printf ("vvod C-");
        scanf ("%d",&C);
        X=0.01*HA;
        A=AN;
        while (A<=AK+X)
        {
                if (A-B>=0)
                S=A*(D+B-C)+pow(A-B,1/2);
                else
                printf ("F i S net");
                if ((A<=0)||(A==1))
                        printf ("S=%6.2f F-net A=%6.2f\n",S,A);
                else
 
                                if ((A!=1-X)&&(A!=1+X))
                                {
                                F=S/log10(A);
                                printf ("S=%6.2f  A=%6.2f  F=%6.2f\n", S,A,F);
                                }
 
                A=A+HA;
        }}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2010, 19:24     Где тут ошибка?
Еще ссылки по теме:

присваивание char - где тут может быть ошибка? C++
C++ Где тут ошибка? Программа сортировки массива по возрастанию
C++ Где тут ошибка то?

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

Или воспользуйтесь поиском по форуму:
Slav1991
0 / 0 / 1
Регистрация: 07.01.2010
Сообщений: 44
26.01.2010, 19:24     Где тут ошибка? #7
S и F не должны выводиться при А-В<0 ток должно выводиться сообщение что Ф и С нет

Добавлено через 44 секунды
а прога все равно считает дальше....
Yandex
Объявления
26.01.2010, 19:24     Где тут ошибка?
Ответ Создать тему
Опции темы

Текущее время: 19:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru