Почему не работает?С++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by qmen, 31 Jul 2012.

  1. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    Здравствуйте,учусь программировать на с++ пишу прогу для кодирования и дошёл до момента когда буквы заносятся в массив,вот код : #include "stdio.h"
    #include "locale.h"
    int main()
    {
    char t[20];
    int n;
    int l;
    int y;
    setlocale(LC_CTYPE, ".1251");
    printf("Сколько букв? ");
    scanf("%d",&n);

    for(y=0;y<n;y++)
    {
    printf("Введите букву \n");
    scanf("%c",&t[y]);
    }

    }



    Почему он не работает?
     
  2. 0xF0RD

    0xF0RD Member

    Joined:
    2 Dec 2009
    Messages:
    49
    Likes Received:
    6
    Reputations:
    0
    Code:
     #include "stdio.h"
     #include "locale.h"
     int main()
     {
     char t[20];
     int n;
     int l;
     int y;
     setlocale(LC_CTYPE, ".1251");
     printf("Сколько букв? ");
     scanf("%d",&n);
    
     for(y=0;y<n;y++)
     {
     printf("Введите букву \n");
     scanf("%c",&t[y]);
     }
       [B]return 0;[/B]
     }
    
    Вероятно, ваша функция не возвращает значение?
     
  3. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    Нет,не этом дело загвоздка в этой строке:
    scanf("%c",&t[y]);
    а если ещё точнее то здесь :"%c"
    Потому-что если я заменю "%c" на "%d" то все работает не работает из-за вот этого "%c"
     
  4. 0xF0RD

    0xF0RD Member

    Joined:
    2 Dec 2009
    Messages:
    49
    Likes Received:
    6
    Reputations:
    0
    %d - это модификатор для ввода десятичного числа.
    Попробуй модификатор %s

    PS char t[20] распознается компилятором как строка
     
    #4 0xF0RD, 1 Aug 2012
    Last edited: 1 Aug 2012
  5. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    нет,%s уже пробывал
    Да,я знаю это я просто к сведению,что %c не катит
     
  6. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    а попробуйте вы у себя это откомпилировать,у вас это работает?
     
  7. 0xF0RD

    0xF0RD Member

    Joined:
    2 Dec 2009
    Messages:
    49
    Likes Received:
    6
    Reputations:
    0
    да, работает.
    Подключил еще библиотеку stdafx.h
     
  8. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    у вас какой компилятор?
     
  9. 0xF0RD

    0xF0RD Member

    Joined:
    2 Dec 2009
    Messages:
    49
    Likes Received:
    6
    Reputations:
    0
    VC 2008
     
  10. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Буквы вводятся? Если да, то код работает, что от него еще требуется?
     
  11. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    вот в том то и дело что буквы не вводятся
     
  12. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Code:
    #include <stdio.h>
    
    int main()
    {
    	char symbolArray[20];
    	int numberOfCharacters;
    	int counter;
    
    	printf("Enter a number of characters.");
    	scanf("%d", &numberOfCharacters);
    
    	for(counter = 0; counter < numberOfCharacters; ++counter)
    		scanf("%1s", &symbolArray[counter]);
    
    	printf(symbolArray);
    
    	return 0;
    }
    
    все работает.
     
  13. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    0xF0RD а можно ссылочку где вы скачали данный компилятор?В яндексе искал ничего вразумительного так и не нашёл.
     
  14. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    Ins3t а можно вопрос,а почему 1s?
     
  15. qmen

    qmen New Member

    Joined:
    23 Dec 2010
    Messages:
    63
    Likes Received:
    1
    Reputations:
    0
    понимаю что всех подзаебал,но ещё вопрос почему не работает,а точнее во вложенных циклах проблема начиная с 60 строчки в конце самом
    Code:
    #include "stdio.h"
    #include "locale.h"
    int main()
    {
    int a[33]; // в a код  в б буквы в u слово
    char b[33];
    int i;
    int r;
    int n;
    int l;
    char t[30];
    int k;
    setlocale(LC_CTYPE, ".1251");
    for(i=0;i<33;i++)
    {
    a[i]=rand(1,50)*rand(1,34)/rand(3,8);
    
    }
    b[0]='а';
    b[1]='б';
    b[2]='в';
    b[3]='г';
    b[4]='д';
    b[5]='е';
    b[6]='ё';
    b[7]='ж';
    b[8]='з';
    b[9]='и';
    b[10]='й';
    b[11]='к';
    b[12]='л';
    b[13]='м';
    b[14]='н';
    b[15]='о';
    b[16]='п';
    b[17]='р';
    b[18]='с';
    b[19]='т';
    b[20]='у';
    b[21]='ф';
    b[22]='х';
    b[23]='ц';
    b[24]='ч';
    b[25]='ш';
    b[26]='щ';
    b[27]='ъ';
    b[28]='ы';
    b[29]='ь';
    b[30]='э';
    b[31]='ю';
    b[32]='я';
    k=0;
    printf("Сколько букв? ");
    scanf("%d",&n);
    l=n;
    for(n=0;n<l;n++)
    {
    printf("Введите  букву \n");
    scanf("%1s",&t[n]);
    }
    for(n=0;n<l;n++)
    {
      for(k=0;k<33;k++){
        if(t[n]==b[k]) printf("%c ",t[n]);
      }
    }
    
    }