Re: C program help

Tim Walberg <[email protected]>
Newsgroups org.kernel.vger.linux-c-programming
Message-ID <[email protected]>
Not tested, but here's a simple (not very efficient or elegant, but
reasonable) concept. It's basically keeping a history, and postprocessing
the history to generate the lists. It might be better to keep separate
right/wrong lists as you go, but it's not as simple...


#include <stdio.h>
#include <stdlib.h>
#define NPROBLEMS 10

int main()
{ int x[NPROBLEMS], y[NPROBLEMS], right_answer[NPROBLEMS], given_answer[NPROBLEMS];
  int nright, nwrong;
  int i;

  for (i = 0; i < NPROBLEMS; ++i)
  { x[i] = i;
    y[i] = i;
    right_answer[i] = x[i] + y[i];
    printf("What is %d + %d? ", x[i], y[i]);
    scanf("%d", &(given_answer[i]));

    if (given_answer[i] == right_answer[i])
    { printf("%d is RIGHT answer\n", given_answer[i]);
      ++nright;
    }
    else
    { printf("%d is WRONG answer; the RIGHT answer is %d\n", given_answer[i], right_answer[i]);
      ++nwrong;
    }
  }

  printf("You got %d right and %d wrong\n", nright, nwrong);

  printf("Right answers:");
  for (i = 0; i < NPROBLEMS; ++i)
    if (right_answer[i] == given_answer[i])
      printf(" %d", given_answer[i]);
  printf("\n");

  printf("Wrong answers:");
  for (i = 0; i < NPROBLEMS; ++i)
    if (right_answer[i] != given_answer[i])
      printf(" %d", given_answer[i]);
  printf("\n");

  return 0;
}

  
On 09/19/2009 08:13 -0700, spiros85 wrote:
>>	
>>	Hi guys of dear forum!I am a new programmer in C programming language and i
>>	have a question for you about the following C code:
>>	#include <stdio.h>
>>	#include <stdlib.h>
>>	
>>	int main()
>>	{
>>	    int x;
>>	    int answer;
>>	    int right;
>>	    int wrong;
>>	    printf("This is a program of sum\n");
>>	    right = 0; /*Initialization of right value*/
>>	    wrong = 0; /*Initialization of wrong value*/
>>	    for(x = 1; x <= 10; x++)[QUOTE][/QUOTE]
>>	    {
>>	          printf("What is %d + %d: ", x, x);
>>	          scanf("%d", &answer);
>>	          printf("The sum is %d\n", answer);
>>	          printf("\a");
>>	          if(answer == x + x)
>>	          {
>>	             printf("%d is RIGHT answer\n", answer);
>>	             right++; /*Saves and increases the amount of right answers*/
>>	          }
>>	          else
>>	          {
>>	             printf("%d is WRONG answer\n", answer);
>>	             b[10] = answer;
>>	             wrong++; /*Saves and increases the amount of wrong answers*/
>>	             printf("The correct answer is %d\n", x + x);
>>	          }
>>	    }
>>	    printf("The right answers are %d and the wrong are %d\n", right, wrong);
>>	    fflush(stdin);
>>	    getchar();
>>	}
>>	 
>>	First, I use DEV C++ compiler!This program asks from user to find the sum of
>>	1+1,2+2 until for loop reaches 10.As you can observe with right++ and
>>	wrong++ i can define and print to the screen the amount of right or wrong
>>	numbers!
>>	My question is how could I define the number of correct and wrong numbers in
>>	collaboration with their amount?For example:
>>	The right answers are 8 and wrong are 2
>>	The right answers are 2 4 6 8 10 12 14 16
>>	The wrong answers are 22 44
>>	-- 
>>	View this message in context: http://www.nabble.com/C-program-help-tp25522429p25522429.html
>>	Sent from the linux-c-programming mailing list archive at Nabble.com.
>>	
>>	--
>>	To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
>>	the body of a message to [email protected]
>>	More majordomo info at  http://vger.kernel.org/majordomo-info.html
End of included message



-- 
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.