Jump to content

Welcome Guest! To access all forums & features, please register an account or sign-in. → Why register?




Photo

Converting C++ to C

cplusplus to c

  • Please log in to reply
5 replies to this topic - - - - -

#1 showlow

showlow

    Neowinian

  • 9 posts

Posted 25 April 2012 - 17:28

Can anyone with experience in C help me convert this code?

#include <iostream>
using namespace std;
int main()
{int m,d,y;
cout<<"Enter month: ";
cin>>m;
cout<<"Enter day: ";
cin>>d;
cout<<"Enter year: ";
cin>>y;
cout<<"The day after "<<m<<"/"<<d<<"/"<<y<<" is: ";
d++;
if(d>30)
{d=1;
m++;
if(m>12)
{m=1;
y++;
}
}
cout<<m<<"/"<<d<<"/"<<y<<endl;
system("pause");
return 0;
}


#2 zeta_immersion

zeta_immersion

    Neowinian Wise One

  • 3,194 posts
  • Location: Toronto

Posted 25 April 2012 - 17:38

#include<stdio.h>
main()
{
   int m, d, y;
	printf("Enter month");
	scanf (&m);
   printf ("Enter day");
   scanf (&d);
   printf ("Enter year");
  scanf (&y);
  printf ("The day after ", m, "/ ", d, "/ ", y, " is: ");
  d++;
  if (d>30)
  {
	  d=1;
  }
  m++;
  if (m>12)
  {
	  m=1;
   }
   y++;
   printf (m," / ",d," / ",y);

   return 0;
}

this is a half ass job because I don't remember the syntax correctly but will make changes as I read google ...
The code might not compile, I cannot do this at work and the code is sloppy
Also, there are shortcuts to the code, and can be optimized as I have written it is just a high school way of doing things

Why do you increment day after
cout<<"The day after "<<m<<"/"<<d<<"/"<<y<<" is: ";

Conversely you could do the following

#include<stdio.h>
main()
{
   int m, d, y;
	printf("Enter month, day, year separated by comma - hit Enter when done: ");
	scanf (" %d, %d, %d", &m, &d, &y);
	printf ("The day after ", m, "/ ", d, "/ ", y, " is: ");
   BLAH
}


#3 OP showlow

showlow

    Neowinian

  • 9 posts

Posted 25 April 2012 - 18:06

Im not entirely sure the instructor said that would be needed at the end of the C++, so I've got the code working and cleaned up but instead of the display being 11/2/2011 is 11/3/2011 it is 12/3/2012.

Here is the code if someone can see where I am messing up within the if statements

#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)
main()
{
int m, d, y;
printf("Enter month");
scanf("%d", &m);
printf("Enter day");
scanf("%d", &d);
printf("Enter year");
scanf("%d", &y);
printf ("The day after %d/%d/%d is", m,d,y);
d++;
{
if (d>30)
d=1;
m++;
if (m>12)
m=1;
y++;
}
printf ("%d/%d/%d", m,d,y);

system("pause");
return 0;
}
P.S. is there anything I should put around my code to distinguish it?

#4 zeta_immersion

zeta_immersion

    Neowinian Wise One

  • 3,194 posts
  • Location: Toronto

Posted 25 April 2012 - 18:10

the if statements need { } ... put them accordingly


try to use the code button to make it easier to read

#5 Site Lab

Site Lab

    Professional Graphics Design

  • 212 posts
  • Location: Manchester, England
  • OS: Windows 8 Consumer Preview

Posted 25 April 2012 - 18:17

ignore

#6 OP showlow

showlow

    Neowinian

  • 9 posts

Posted 25 April 2012 - 18:23

Okay, thanks.
I also had to make d=1, m++; instead of d=1;m++;