Click here to Skip to main content
15,846,211 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
There are inputs that consists of 1000 lines.Every line has an array that consists of 30 numbers.first 15 numbers are betweeen 1-10 and last 15 numbers are their squares.the code will read the numbers from the left and if we have the same number in right these numbers will be replaced.Then it will continue to read and write and when left index equals to right index the code will stop.

What I have tried:

i tried to use 2 loops first one was for the first half and the second one was for the second half but i couldn't continue.
Posted
Updated 25-Jan-23 16:58pm
Comments
Andre Oosthuizen 25-Jan-23 5:46am    
Show us the code that you already generated. Is there an error returned, if so, where in the code etc.

It is very difficult to give an answer on something as broad as your question is. See this to get a better idea on how to improve on your questions - https://www.codeproject.com/Questions/297604/How-to-ask-a-good-question
Richard MacCutchan 25-Jan-23 5:55am    
"if we have the same number in right these numbers will be replaced."
Replaced by what?
Alperen E 25-Jan-23 5:56am    
there is an error in this question i just got it
Richard MacCutchan 25-Jan-23 6:00am    
Well you need to talk to the person who set it.
Alperen E 25-Jan-23 6:18am    
yeah

The documentation for fgets[^] includes sample code that shows how to open, read, and close a file and that is how you can read each line in the file. The function strtok[^] can be used to peel the numbers out of the line of text and atoi[^] can be used to convert each token string to an integer which you will probably want to store in an array. It is then up to you to perform the logic on those numbers.
 
Share this answer
 
Quote:
the code will read the numbers from the left and if we have the same number in right these numbers will be replaced.
Replaced by what ?

You have to search the number of a set (e.g. the ones on the left) in the other set (e.g. the ones on the right). The straightforward, brute force, approach uses two loops:
pseudocode
for i = 1 to 15
  for j = 16 to 30
    if n[i] == n[j]
      replace
 
Share this answer
 
Comments
Alperen E 25-Jan-23 5:49am    
if we have the same numbers both in the first and in the last 15 these numbers will be replaced.i just thought about that and it felt weird to me.there must be a mistake in this question
Quote:
if we have the same numbers both in the first and in the last 15 these numbers will be replaced.i just thought about that and it felt weird to me.there must be a mistake in this question


Not really: there are three numbers which can appear on both sides: 1, 4, and 9 because they are squares between 1 and 10

So the simplest efficient way to do this is to look for those three values on the right, and if you find one, look for a matching 1, 2, or 3 on the left.
If you find one, remove them.
If the indexes of the match are the same, stop processing.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900