Моя первая программа на C - PullRequest
1 голос
/ 14 марта 2011

Хорошо, я делаю небольшую программу для твиттера, в основном вы пишете, сколько у вас подписчиков, и вы получите ответ.

Моя проблема в том, что когда вы набираете количество подписчиков, вы получаете только первый ответ <50 </p>

Вот код (также на http://pastie.org/1668357):

#include <stdio.h>

int followers;

int main() {


  {
  int followers;

  printf( "Please Enter How Many Twitter Followers You Have...\n" );
  scanf ( "%d" , &followers );
  getchar ();
}
  if ( followers > 50 ) {
   printf ("You may be new to Twitter or rarely use it, try tweeting about more topics.\n" );
   getchar ();

}

  else if ( followers < 100 ) {
   printf ("Reply: Not bad but keep Tweeting.\n" );
   getchar ();
}

  else if ( followers < 200 ) {
   printf ("Reply: People must be interested in your stuff, keep tweeting.\n" );
   getchar();
}

  else if ( followers < 500 ) {
   printf("Reply: Great, you must like Tweeting and other people must like your Tweets, Good job!\n" );
   getchar();
}

  else if ( followers < 1000 ) {
   printf ("Reply: Wow, that's a lot, send some to me @Cian_W\n" );
   getchar();
}

  else if ( followers < 1000000 ) {
   printf ("Reply: Jeez, are you famous? I'd say you like Tweeting\n" );
   getchar();
}

  else if ( followers != 1000000 ) {
   printf ("Reply: Holy crap, are you a celeb? Many people must like you.\n" );
   getchar();

}
getchar();
return 0;
}

Спасибо Киан

Ответы [ 4 ]

4 голосов
/ 14 марта 2011

Вы ввели то, что, по-видимому, должно было быть: «if (последователи <50)» как «if (последователи> 50)».Строки 8, 9 и 14 также должны быть удалены.

Редактировать: поскольку вопрос теперь включает код (без номеров строк), части, которые должны быть удалены, следующие:

{
    int followers;

    printf( "Please Enter How Many Twitter Followers You Have...\n" );
    scanf ( "%d" , &followers );
    getchar ();
}

Вы хотите избавиться от { и }.Вы также хотите избавиться от одного из двух мест, которые определены как followers, например: int followers;

Я изначально говорил, что одно из main должно быть удалено, но в действительности это, вероятно, будетлучше вместо глобальных удалить.Это будет работать в любом случае - дело в том, чтобы followers, прочитанный пользователем, также использовался в операторах if.Для такой маленькой программы разница между использованием локальной и глобальной переменной не имеет большого значения, но в долгосрочной перспективе было бы лучше научиться избегать глобальных переменных.

1 голос
/ 14 марта 2011

Вы должны проверить форму в обратном направлении.

if( x > 1000000)
{
}
else if(x > 10000)
{
}
else if(x > 50 )
{
}

Или вы должны соответствовать точному интервалу

if(x<50)
{
}
else if((x>=50) && (x<1000))
{
}
else if((x>=1000) && (x<2000))
{
}
1 голос
/ 14 марта 2011

У вас есть переменная followers, объявленная как глобальная переменная, так и переменная во внутреннем блоке внутри main(). Когда вы звоните scanf(), вы, вероятно, пишете в followers, который принадлежит самой внутренней области. Затем он выходит из области видимости, как только вы нажмете эту закрывающую скобку. Попробуйте избавиться от общего числа подписчиков и избавиться от скобок вокруг вызова на scanf(). Вам также нужно исправить логику в вашем первом if утверждении, чтобы сравнение пошло в другую сторону.

1 голос
/ 14 марта 2011

Удалить строку 9 - У вас есть две разные переменные, которые называются followers - И изменить строку 15 на < 50

Последнее, если должно быть else if ( followers >= 1000000 ) - >=не !=

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...