[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. vandalism

    vandalism New Member

    Joined:
    26 Dec 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Ага, идею я понял: проверять текущий, предыдущий и следующий элементы, спасибо.
    Но не могли бы вы объяснить, что делает строчка:
    scanf( "%d", &arr[ i ][ k ] );
    просто мы только С начали изучать, программа начинается с
    void main()
    и объявления переменных
     
  2. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
    Лучше чем здесь написано я не скажу.
     
  3. шёпот

    шёпот New Member

    Joined:
    8 Jan 2011
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    У компании собрана статистика по расходам и доходам за прошлый год в каждом месяце. Налог на прибыль - 10%. Отсортировать данные по возрастанию величины уплаченных налогов. Кто может написать в cpp. Ответ в icq613797936
     
    1 person likes this.
  4. MaTpOc

    MaTpOc Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    помогите плиз
    [​IMG]

    помогите прилепить ввод/вывод

    PHP:
    #include <iostream>
    int main( )
    {
       
    int a 19;
       
    int l[6] = { 12345};
       
    int x[2] = { 7};
       
    int num(0), denum(0);
       for( 
    int i 02i++ )
            
    num += x[i] - a*b;
       for( 
    int i 06i++ )
            
    denum += l[i] - a;
       
    double S = (double)num/denum;
       return 
    0;
    }
     
    #6044 MaTpOc, 8 Jan 2011
    Last edited: 8 Jan 2011
  5. _CJ_

    _CJ_ New Member

    Joined:
    10 Dec 2010
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    Нужно написать функцию (передаем строку, состоящую из нескольких предложений), которая бы выводила предложения в обратном порядке.
    На С++.
    Заранее спасибо.
     
    1 person likes this.
  6. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Code:
    #include <iostream>
    #include <string>
    #include <algorithm>
    
    void drawReverseString( std::string & );
    
    int main( int argc, char *argv[] ) {
    	std::string d( "sff\nfgfdgsdg\nfgdfgh" );
    	drawReverseString( d );
    
    	return 0;
    }
    
    void drawReverseString( std::string &str ) {
    	std::reverse( str.begin(), str.end() );
    
    	std::cout << str;
    }
    
     
  7. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Ввод
    Code:
    std::cin >> var;
    Вывод
    Code:
    std::cout << var;
    создать массив с размером вводимым пользователем:
    Code:
    std::cin >> arraySize;
    int *arr = new int[ arraySize ];
     
    1 person likes this.
  8. MaTpOc

    MaTpOc Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    так у меня чет не работает (

    PHP:
     #include <iostream>
    int main( )
        
    std::cout << var;
        
    std::cin >> var;
    {
       
    int a 19;
       
    int l[6] = { 12345};
       
    int x[2] = { 7};
       
    int num(0), denum(0);
       for( 
    int i 02i++ )
            
    num += x[i] - a*b;
       for( 
    int i 06i++ )
            
    denum += l[i] - a;
       
    double S = (double)num/denum;
       
    system"pause" );
       return 
    0;

     
  9. KI11obyte

    KI11obyte New Member

    Joined:
    8 Nov 2005
    Messages:
    29
    Likes Received:
    2
    Reputations:
    0
    лол cin и cout должны быть в теле main. и логично сделать cin в начале, а cout в конце
     
    1 person likes this.
  10. MaTpOc

    MaTpOc Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    да все равно не пашет!
     
  11. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Саму задачу не проверял, просто добавил ввод/вывод.
    По аналогии праьте под ваши нужды.

    Code:
    #include <iostream> 
    int main( )  
    { 
    	int a = 0, b = 0; 
    	int arrayOneSize = 0, arrayTwoSize = 0;
    	std::cin >> a;
    	std::cin >> b;
    
    	std::cin >> arrayOneSize;
    	std::cin >> arrayTwoSize;
    
    	int *l = new int [ arrayOneSize ];
    	int *x = new int [ arrayTwoSize ];
    
    	for( int i = 0; i < arrayOneSize; i++ )
    		std::cin >> l[ i ];
    
    	for( int i = 0; i < arrayTwoSize; i++ )
    		std::cin >> x[ i ];
    
    	int num(0), denum(0); 
    	for( int i = 0; i < 2; i++ ) 
    		num += x[i] - a*b; 
    	for( int i = 0; i < 6; i++ ) 
    		denum += l[i] - a; 
    	double S = (double)num/denum; 
    
    	std::cout << "S: " << S;
    
    	system( "pause" ); 
    	return 0; 
    } 
    
     
    1 person likes this.
  12. vandalism

    vandalism New Member

    Joined:
    26 Dec 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Edward, спасибо конечно, но вы не совсем поняли моё задание.
    Мне нужно вывести найбольший островок

    1 1 1 0 0
    1 1 0 0 0
    1 1 1 1 1
    0 0 0 0 1
    0 0 0 1 1

    Ваша программа в данном случае выводит 12, а нужно 7 - т.е. подсчёт нижних нолей
     
  13. KI11obyte

    KI11obyte New Member

    Joined:
    8 Nov 2005
    Messages:
    29
    Likes Received:
    2
    Reputations:
    0
    я же говорил рекурсивно обойти надо всю карту. как освобожусь - напишу код, если до меня не напишут
     
  14. Lee_fx

    Lee_fx Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Можно каждую еденичку/нолик представить в виде структуры:
    struct Cell {
    int value;
    bool passed;
    };
    и после рекурсивно двигаться из каждой клетки массива в 4 направления, увеличивая размер и отмечая клетку при успешном переходе.
     
  15. INFINITY_92

    INFINITY_92 New Member

    Joined:
    8 Jan 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    такой вот вопросик:как в codeblocks 8.02 адекватно создать проект для с++?
     
  16. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    _http://forum.mirgames.ru/lofiversion/index.php?t5302.html
    Почитай тут.
     
  17. KI11obyte

    KI11obyte New Member

    Joined:
    8 Nov 2005
    Messages:
    29
    Likes Received:
    2
    Reputations:
    0
    вот задачка об островах. вроде нигде не ошибся
    Code:
    #include <iostream>
    
    int max=0;
    int count=0;
    int a[5][5];
    
    void rec(int i, int j)
    {
    	if (a[i][j]) {
    		return;
    	}
    	count++;
    	a[i][j]=1;
    	if (i<4) rec(i+1,j);
    	if (j<4) rec(i,j+1);
    	if (i>0) rec(i-1,j);
    	if (j>0) rec(i,j-1);
    }
    
    int main(int argc, char **argv) {
    	for (int i=0; i<5; i++) {
    		for (int j=0; j<5; j++) {
    			std::cin >> a[i][j];
    		}
    	}
    	for (int i=0; i<5; i++) {
    		for (int j=0; j<5; j++) {
    			if (count>max) {
    				max=count;
    			}
    			count=0;
    			if (!a[i][j])
    				rec(i,j);
    		}
    	}
    	std::cout << max << std::endl;
    	return 0;
    }
    
    
    
     
    #6057 KI11obyte, 9 Jan 2011
    Last edited: 9 Jan 2011
  18. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    ребят, имею не очень хороший код на с++ по выявлению простых чисел из заданного интервала.
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
    
    	int i, j;
    	bool isprime;
    
    	for(i=2; i <= 1000; i++)
    
    		{
    
    		isprime = true;
    
    		for(j=2; j<=i/2; j++)
    
    		if((i%j) == 0) isprime = false;
    		if(isprime)
    
    		cout << i << " ";
    		}
    
    system("pause");
    return 0;
    	
    }
    

    разъясните вот этот цикл, пожалуйста:

    Code:
    for(j=2; j<=i/2; j++)
    
    		if((i%j) == 0) isprime = false;
    		if(isprime)
    
    если можно, то поподробней.

    и еще, как сделать, чтобы в консоле корректно отображались русские буквы?
     
    #6058 Shaba777, 10 Jan 2011
    Last edited: 10 Jan 2011
  19. vandalism

    vandalism New Member

    Joined:
    26 Dec 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    KI11obyte, пожалуйста добавь меня в аське или задокументируй пожалуйста программу :(
     
  20. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    MaTpOc, вот так должно работать(по крайней мере в среде Visual C++ 2010):
    Code:
    #include <iostream>
    using namespace std;
    
    int main( )
    {
       int a, b;
    
       cout << "Введите a: ";
       cin >> a;
    
       cout << "Введите b: ";
       cin >> b;
    
       int l[6] = { 1, 2, 3, 4, 5, 6 };
       int x[2] = { 7, 8 };
       int num(0), denum(0);
       for( int i = 0; i < 2; i++ )
            num += x[i] - a*b;
       for( int i = 0; i < 6; i++ )
            denum += l[i] - a;
       double S = (double)num/denum;
    
       cout << "S равно: " << S;
       cout << "\n"; // новая строка
    
       system("pause");
       return 0;
    }  
    
    p.s Могут возникнуть траблы с кодировкой в консоле.
     
    #6060 Shaba777, 10 Jan 2011
    Last edited: 10 Jan 2011
Thread Status:
Not open for further replies.