Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Some help with C programming questions

  1. Mar 7, 2008 #1
    I have a few questions:

    1. Reversing the elements of an array involves swapping the corresponding elements of the array: the first with the last, the second with the next to the last, and so on, all the way to the middle of the array.

    Given an array a , an int variable n containing the number of elements in a , and two other int variables, k and temp , write a loop that reverses the elements of the array.

    Do not use any other variables besides a , n , k , and temp .

    I have:

    for (temp=n;temp>0; temp--;)


    for (k=0; k<n;k++)

    a[k] = a[temp-1];


    the compiler yells at me and I dont know whats up...just for everyone to know this is a Codelab assignment.

    2. You are given two int variables j and k , an int array zipcodeList that has been declared and initialized, an int variable nZips that contains the number of elements in zipcodeList , and an int variable duplicates .

    Write some code that assigns 1 to duplicates if any two elements in the array have the same value, and that assigns 0 to duplicates otherwise.
    Use only j , k , zipcodeList , nZips , and duplicates .

    I have: duplicates=0;

    for (j=0; j<(nZips); j++)
    for (k=0; k<(nZips); k++)

    { if (zipcodeList[j] == zipcodeList[k])



    yet the feedback comes back i am not assigning 0 to duplicates if they dont match...

    3. Given an array arr of type int , along with two int variables i and j , write some code that swaps the values of arr and arr[j] . Declare any additional variables as necessary.

    I wrote:

    int x=j;



    - but the feedback comes that only one variable is changing...I don't understand why..

    I know it's a lot but if someone can help me on any of them I would appreciate it a lot!

  2. jcsd
  3. Mar 7, 2008 #2
    1. for (temp=n;temp>0; temp--;)

    You have a semicolon too many there. There should be exactly two semicolons in a for(a;b;c) clause.

    2. This will always return 1, because when j == k then zipcodeList[j]==zipcodeList[k], always.

    3. On line two you assign arr[j] to arr. On line three you assign arr to arr[j]. But you destroyed the value of arr on line two, didn't you? You overwrote it with arr[j]. So assigning arr to arr[j] afterwards does nothing.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook