0

when i compile this program

main()
{
  struct emp
  {
     char name[20];
    float sal;
  };
 struct emp e[10]; 
int i;
for(i=0; i<=9; i++)
  scanf("%s %f", e[i].name, &e[i].sal);
}

it gives the Floating point formats not linked

but when i run this

main()
{
  float x;
 scanf("%f" , x);
}

<< moderator edit: fixed [co[u][/u]de][/co[u][/u]de] tags >>


it gives no error

i got the explanation of first question as
compiler encounters a reference to the address of a float so this is error

in the second program we are also passing the address of x

thn why not error

is i missing something that is not clear to me
plz explain what is going on in both the program

4
Contributors
19
Replies
20
Views
12 Years
Discussion Span
Last Post by johnray31
0

Whenever you compile C code you should enable warnings. Some compilers will not complain unless you tell them to complain.

What compiler are you using? Is it an ancient version
of BORLAND C++ or TURBO C? You really need to use a modern compiler - there are free ones on the internet starting with gcc.

And in general, don't compile straight C with a C++ compiler even though it seems to work.

0

oops
Dave Sinkula i don,t see that in hurry

that is

scanf("%f" ,&x);

and i am using dev cplusplus 4 version now

but strange there were no problem in both code when i run it on dev 4 version

0

plz tell me in dev 4 version how i ll see my output window it takes input in command line console but not show the output

i am totally novice for it

0

Sorry for that...i should have checked that before posting...i have always used <climits>.....yes<limits> is a standard header and works fine in DEV...so better post ur code

0

Well, <limits> is a standard C++ header. And Narue's code compiles just fine as-is using Dev-C++. Perhaps johnray31 could be so kind as to copy the exact code and post it here within [co[u][/u]de][/co[u][/u]de] tags. It's so much easier that way.

here is my code and plz look one place i mention one error that i am not able to see becz i couldn,t see console output

#include<iostream>
  #include<conio.h>
  #include<alloc.h>
  #include <stdlib.h>
  #include <climits>
  using namespace std;
	typedef struct node
	 {
		int value;
		struct node *next;
	  struct node *prev;
	  }node1;
	node1* head=NULL;
	void buildlink(node*);
	void addition(node*);
	void showlink(node1*);

  int main()
	{   // node1* temp=head;
		for (int x=0; x<2; x++)
		  buildlink(head);
		  showlink(head);
		  //addition(head);
      cin.ignore ( numeric_limits<streamsize>::max(), '\n' );
     cin.get();
      return 0;

	  }
	void buildlink(node *linknode)
	 {  int temp;
		 cout<<"enter ur node value"<<endl;
		 cin>>temp;

		 if(linknode==NULL)
		  {
			 head = (node1*)malloc(sizeof(node1*));
			 head->value=temp;
			 head->next = NULL;
			 head->prev = NULL;
			}
		  else
			{
			 while(linknode->next!=NULL)
			  {
			  linknode=linknode->next;

			  }

			  cout<<linknode->value<<endl;
			  linknode->next=(node1*)malloc(sizeof(node1*));
				linknode->next->prev=linknode; [B]//it is not taking the value of linknode[/B]
				cout<<linknode->next->prev->value<<endl;
			  linknode->next->value=temp;

			  linknode->next->next=NULL;


			  //cout<<endl<<temp1->value<<endl;
			}
		 }
	  void showlink(node1* link)
		{  node1* previous =link;
		  cout<<link->value<<endl;
		  while(link->next)
			{
			  cout<<link->value<<endl;
			  link=link->next;

			}
		  while(link)
			{
			 cout<<link->value<<endl;
			 link=link->prev;
			}
		 }
	  void addition(node* link)
		{  int x,val;
			cout<<"enter position u want to make addition and value "<<endl;
			cin>>x>>val;
			for(int y=1; y<x; y++)
			 link=link->next;
				 node1* temp2 = (node*)malloc(sizeof(node1*));
			 temp2->value=val;
			 temp2->next=link->next;
			 link->next=temp2;
          showlink(head);
		}
0

Codes compiles with no errors but gives warning bcoz ur using deprecated headers...dunno about ur logic maybe some logical errors also....

0

I'm not looking that close, but what kind of output would you expect. I get this.

enter ur node value
2
enter ur node value
25
2
2
2
2
25
2
0

but in my dev 4.o it gives error

c:\doublly_.cpp: In function `int main()':
c:\doublly_.cpp:24: `numeric_limits' undeclared (first use this function)
c:\doublly_.cpp:24: (Each undeclared identifier is reported only once
c:\doublly_.cpp:24: for each function it appears in.)
c:\doublly_.cpp:24: parse error before `>'
c:\doublly_.cpp:24: implicit declaration of function `int max(...)'
c:\doublly_.cpp:24: parse error before `)'

0

Perhaps it's time to get the latest version of a free compiler?

Why are you using malloc in a C++ program?

Why are you using ancient headers?

0

Perhaps it's time to get the latest version of a free compiler?

Why are you using malloc in a C++ program?

Why are you using ancient headers?

u said in ur previous reply that it was running ?

actually this program was in c

so till now i i didn,t change it but i ll change it

how u run it and get the output plz tell me

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.