![]() |
| | #1 |
| Registered User Join Date: Feb 2004
Posts: 127
| pointer to array of objects of struct i made the following struct Code: struct student
{
char name[10]; // for the name of the student
int BN;// for the bench number
int year ,section,exam;
double mark;
}; //for the mark of the student
Code: int i; cout<<"enter i "; cin>>i; student *p =new student[i]; int j=0; cout<<"enter the name:"; cin>>p[j].name; what is the problem with the pointer of the array of students it gives error so anyone can help me please thanks in advance |
| undisputed007 is offline | |
| | #2 |
| Registered User Join Date: Feb 2004
Posts: 127
| hey all please help e in this problem .. i didnt find any reply .. is it wrong to make a pointer to array of objects of a struct or what is wrong in the code? this is the whole cod of the program Code:
#include<iostream>
#include<cstdlib>
#include<fstream>
#include<iomanip>
using namespace std;
void sort_fn(student k,int size);
void show_fn(student k ,int size);
struct student
{
char name[10]; // for the name of the student
int BN;// for the bench number
int year ,section,exam;
double mark;
}; //for the mark of the student
int main()
{
student m;
int range[6]={0,0,0,0,0,0};
double sum ,av; // sum is the sum of the marks of students and av is their average
int i=0; //counting the nuber of students
sum =0;
ifstream fin;
ofstream fout;
fin.open("E://mark.txt");
if (fin.fail())
{
cout<<"Can not open file\n";
exit(1);
}
fout.open("E://results.txt");
fin>>m.name;
while(!fin.eof())
{
fout<<m.name;
fout<<" "; //space
fin>>m.BN;
fout<<m.BN;
fout<<" ";
fin>>m.year;
fout<<m.year;
fout<<" ";
fin>>m.section;
fout<<m.section;
fout<<"\t";
fin>>m.exam;
fout<<m.exam;
fout<<"\t";
fin>>m.mark;
if ((m.mark>=0)&&(m.mark<5))
range[0]++;
else if((m.mark>=5)&&(m.mark<10))
range[1]++;
else if((m.mark>=10)&&(m.mark<15))
range[2]++;
else if((m.mark>=15)&&(m.mark<20))
range[3]++;
else if ((m.mark>20)&&(m.mark<25))
range[4]++;
else
range[5]++;
sum+=m.mark;
fout<<m.mark;
fout<<endl;
i++;
fin>>m.name;
}
av=sum/i;
fout<<" the average of the students is :"<<av <<endl;
fout<<" the number of students having score between 0 and less than 5 :"<<range[0]<<endl;
fout<<" the number of students having score between 5 and less than 10 :"<<range[1]<<endl;
fout<<" the number of students having score between 10 and less than 15 :"<<range[2]<<endl;
fout<<" the number of students having score between 15 and less than 20 :"<<range[3]<<endl;
fout<<" the number of students having score between 20 and less than 25 :"<<range[4]<<endl;
fout<<" the number of students having score between 20 and 30 :"<<range[5]<<endl;
student *p =new student[i];
int j=0;
fin>>p[j].name;
while(!fin.eof())
{
fin>>p[j].BN;
fin>>p[j].year;
fin>>p[j].section;
fin>>p[j].exam;
fin>>p[j].mark;
j++;
fin>>p[j].name;
}
sort_fn(p,i);
show_fn(p,i);
fin.close();
fout.close();
delete []p;
return 0;
}
void sort_fn(student & k,int size)
{
student temp;
for (int i=0 ;i<size-1 ;i++)
{
for (int j=i+1;j<size ;j++)
{
if (k[i].mark<k[j].mark)
{
temp=k[i];
k[i]=k[j];
k[j]=temp;
}
}
}
}
void show_fn(student & k ,int size)
{
for (int i=0;i<size;i++)
cout<<k[i].name<<setw(10)<<k[i].section<<setw(15)<<k[i].mark<<endl;
}
thanks in advance |
| undisputed007 is offline | |
| | #3 |
| Registered User Join Date: Feb 2003 Location: Mt. Prospect, IL
Posts: 2,602
| first if all, please reread the forum rules, esspecialy the one partaining to "bumping" of threads. Secodnly you are passing a pointer by reference, which is not allowed. I've fixed the code, and it is below...I'm not at a pc with a compiler at the moment so don't know if it does what you want....it should compile though. Code: #include<iostream>
#include<cstdlib>
#include<fstream>
#include<iomanip>
using namespace std;
struct student
{
char name[10]; // for the name of the student
int BN;// for the bench number
int year ,section,exam;
double mark;
}; //for the mark of the student
void sort_fn(student *k,int size)
{
student temp;
for (int i=0 ;i<size-1 ;i++)
{
for (int j=i+1;j<size ;j++)
{
if (k[i].mark<k[j].mark)
{
temp=k[i];
k[i]=k[j];
k[j]=temp;
}
}
}
}
void show_fn(student *k ,int size)
{
for (int i=0;i<size;i++)
cout<<k[i].name<<setw(10)<<k[i].section<<setw(15)<<k[i].mark<<endl;
}
int main()
{
student m;
int range[6]={0,0,0,0,0,0};
double sum ,av; // sum is the sum of the marks of students and av is their average
int i=0; //counting the nuber of students
sum =0;
ifstream fin;
ofstream fout;
fin.open("E://mark.txt");
if (fin.fail())
{
cout<<"Can not open file\n";
exit(1);
}
fout.open("E://results.txt");
fin>>m.name;
while(!fin.eof())
{
fout<<m.name;
fout<<" "; //space
fin>>m.BN;
fout<<m.BN;
fout<<" ";
fin>>m.year;
fout<<m.year;
fout<<" ";
fin>>m.section;
fout<<m.section;
fout<<"\t";
fin>>m.exam;
fout<<m.exam;
fout<<"\t";
fin>>m.mark;
if ((m.mark>=0)&&(m.mark<5))
range[0]++;
else if((m.mark>=5)&&(m.mark<10))
range[1]++;
else if((m.mark>=10)&&(m.mark<15))
range[2]++;
else if((m.mark>=15)&&(m.mark<20))
range[3]++;
else if ((m.mark>20)&&(m.mark<25))
range[4]++;
else
range[5]++;
sum+=m.mark;
fout<<m.mark;
fout<<endl;
i++;
fin>>m.name;
}
av=sum/i;
fout<<" the average of the students is :"<<av <<endl;
fout<<" the number of students having score between 0 and less than 5 :"<<range[0]<<endl;
fout<<" the number of students having score between 5 and less than 10 :"<<range[1]<<endl;
fout<<" the number of students having score between 10 and less than 15 :"<<range[2]<<endl;
fout<<" the number of students having score between 15 and less than 20 :"<<range[3]<<endl;
fout<<" the number of students having score between 20 and less than 25 :"<<range[4]<<endl;
fout<<" the number of students having score between 20 and 30 :"<<range[5]<<endl;
student *p = new student[i];
int j=0;
fin>>p[j].name;
while(!fin.eof())
{
fin>>p[j].BN;
fin>>p[j].year;
fin>>p[j].section;
fin>>p[j].exam;
fin>>p[j].mark;
j++;
fin>>p[j].name;
}
sort_fn(p,i);
show_fn(p,i);
fin.close();
fout.close();
delete [] p;
return 0;
}
__________________ some entropy with that sink? entropysink.com there are two cardinal sins from which all others spring: Impatience and Laziness. - franz kafka |
| axon is offline | |
| | #4 |
| Registered User Join Date: Feb 2004
Posts: 127
| Thanks man it didnt give errorsin compilation but still didnt give results where that means that it didnt work and really can you tell me please what is the problems with my first code where i noticed that all you have done is that you put the other functions before main function and eventually you said that i am passing a pointer by reference which as you said is un allowed so how can i pass it? do i have to pass it by value? thanks in advance |
| undisputed007 is offline | |
| | #5 |
| Registered User Join Date: Oct 2001
Posts: 2,936
| > fout<<" the average of the students is :"<<av <<endl; > fout<<" the number of students having score between 0 and less than 5 :"<<range[0]<<endl; > fout<<" the number of students having score between 5 and less than 10 :"<<range[1]<<endl; > fout<<" the number of students having score between 10 and less than 15 :"<<range[2]<<endl; > fout<<" the number of students having score between 15 and less than 20 :"<<range[3]<<endl; > fout<<" the number of students having score between 20 and less than 25 :"<<range[4]<<endl; > fout<<" the number of students having score between 20 and 30 :"<<range[5]<<endl; > student *p =new student[i]; > int j=0; > fin>>p[j].name; > while(!fin.eof()) You need to seek back to the beginning of the file here: Code: fout<<" the average of the students is :"<<av <<endl; fout<<" the number of students having score between 0 and less than 5 :"<<range[0]<<endl; fout<<" the number of students having score between 5 and less than 10 :"<<range[1]<<endl; fout<<" the number of students having score between 10 and less than 15 :"<<range[2]<<endl; fout<<" the number of students having score between 15 and less than 20 :"<<range[3]<<endl; fout<<" the number of students having score between 20 and less than 25 :"<<range[4]<<endl; fout<<" the number of students having score between 20 and 30 :"<<range[5]<<endl; student *p =new student[i]; int j=0; fin.clear(); fin.seekg(0); fin>>p[j].name; while(!fin.eof())
__________________ http://www.freechess.org |
| swoopy is offline | |
| | #6 |
| Registered User Join Date: Feb 2004
Posts: 127
| thanks for ur reply but can u tell me what does that do? Code: fin.clear(); fin.seekg(0); Thanks in advance |
| undisputed007 is offline | |
| | #7 | |
| End Of Line Join Date: Apr 2002
Posts: 6,240
| Quote:
__________________ When all else fails, read the instructions. If you're posting code, use code tags: [code] /* insert code here */ [/code] | |
| Hammer is offline | |
| | #8 |
| Registered User Join Date: Oct 2001
Posts: 2,936
| >anyway the problem still exist with the same errors as before What errors are you getting? 1) Did the code compile? If not, what are the error messages? 2) If the code compiled, what happens when you run the program? 3) Post a copy of your E:\\mark.txt file >fin.open("E://mark.txt"); It may not matter, but your forward slashes should be backslashes: fin.open("E:\\mark.txt");
__________________ http://www.freechess.org |
| swoopy is offline | |
| | #9 |
| Registered User Join Date: Feb 2004
Posts: 127
| I dont think it's a problem of slahes and backslashes because this program was working well when i use it only to write the average of marks in a file but when it comes to sorting the errors are so much the code didnt compile and it makes 102 errors (I cant imagine that myself .. maybe a new world record )the error messages are shown below Compiling... d.cpp E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(8) : error C2065: 'student' : undeclared identifier E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(8) : error C2146: syntax error : missing ')' before identifier 'k' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(8) : error C2182: 'sort_fn' : illegal use of type 'void' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(8) : error C2059: syntax error : ')' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(9) : error C2146: syntax error : missing ')' before identifier 'k' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(9) : error C2182: 'show_fn' : illegal use of type 'void' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(9) : error C2059: syntax error : ')' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(22) : error C2146: syntax error : missing ';' before identifier 'm' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(22) : error C2065: 'm' : undeclared identifier E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(37) : error C2228: left of '.name' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(40) : error C2228: left of '.name' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(42) : error C2228: left of '.BN' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(43) : error C2228: left of '.BN' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(45) : error C2228: left of '.year' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(46) : error C2228: left of '.year' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(48) : error C2228: left of '.section' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(49) : error C2228: left of '.section' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(51) : error C2228: left of '.exam' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(52) : error C2228: left of '.exam' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(54) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(55) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(55) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(57) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(57) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(59) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(59) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(61) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(61) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(63) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(63) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(68) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(69) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(72) : error C2228: left of '.name' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(83) : error C2065: 'p' : undeclared identifier E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(83) : error C2061: syntax error : identifier 'student' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(87) : error C2109: subscript requires array or pointer type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(87) : error C2228: left of '.name' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : error C2143: syntax error : missing ';' before '{' E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(89) : fatal error C1003: error count exceeds 100; stopping compilation Error executing cl.exe. d.exe - 102 error(s), 0 warning(s) about the code it's Code:
#include<iostream>
#include<cstdlib>
#include<fstream>
#include<iomanip>
using namespace std;
void sort_fn(student k,int size);
void show_fn(student k ,int size);
struct student
{
char name[10]; // for the name of the student
int BN;// for the bench number
int year ,section,exam;
double mark;
}; //for the mark of the student
int main()
{
student m;
int range[6]={0,0,0,0,0,0};
double sum ,av; // sum is the sum of the marks of students and av is their average
int i=0; //counting the nuber of students
sum =0;
ifstream fin;
ofstream fout;
fin.open("E://mark.txt");
if (fin.fail())
{
cout<<"Can not open file\n";
exit(1);
}
fout.open("E://results.txt");
fin>>m.name;
while(!fin.eof())
{
fout<<m.name;
fout<<" "; //space
fin>>m.BN;
fout<<m.BN;
fout<<" ";
fin>>m.year;
fout<<m.year;
fout<<" ";
fin>>m.section;
fout<<m.section;
fout<<"\t";
fin>>m.exam;
fout<<m.exam;
fout<<"\t";
fin>>m.mark;
if ((m.mark>=0)&&(m.mark<5))
range[0]++;
else if((m.mark>=5)&&(m.mark<10))
range[1]++;
else if((m.mark>=10)&&(m.mark<15))
range[2]++;
else if((m.mark>=15)&&(m.mark<20))
range[3]++;
else if ((m.mark>20)&&(m.mark<25))
range[4]++;
else
range[5]++;
sum+=m.mark;
fout<<m.mark;
fout<<endl;
i++;
fin>>m.name;
}
av=sum/i;
fout<<" the average of the students is :"<<av <<endl;
fout<<" the number of students having score between 0 and less than 5 :"<<range[0]<<endl;
fout<<" the number of students having score between 5 and less than 10 :"<<range[1]<<endl;
fout<<" the number of students having score between 10 and less than 15 :"<<range[2]<<endl;
fout<<" the number of students having score between 15 and less than 20 :"<<range[3]<<endl;
fout<<" the number of students having score between 20 and less than 25 :"<<range[4]<<endl;
fout<<" the number of students having score between 20 and 30 :"<<range[5]<<endl;
student *p =new student[i];
int j=0;
fin.clear();
fin.seekg(0);
fin>>p[j].name;
while(!fin.eof())
{
fin>>p[j].BN;
fin>>p[j].year;
fin>>p[j].section;
fin>>p[j].exam;
fin>>p[j].mark;
j++;
fin>>p[j].name;
}
sort_fn(p,i);
show_fn(p,i);
fin.close();
fout.close();
delete []p;
return 0;
}
void sort_fn(student & k,int size)
{
student temp;
for (int i=0 ;i<size-1 ;i++)
{
for (int j=i+1;j<size ;j++)
{
if (k[i].mark<k[j].mark)
{
temp=k[i];
k[i]=k[j];
k[j]=temp;
}
}
}
}
void show_fn(student & k ,int size)
{
for (int i=0;i<size;i++)
cout<<k[i].name<<setw(10)<<k[i].section<<setw(15)<<k[i].mark<<endl;
}
thanks in advance |
| undisputed007 is offline | |
| | #10 |
| Registered User Join Date: Oct 2001
Posts: 2,936
| Code: >void sort_fn(student k,int size);
>void show_fn(student k ,int size);
Notice at this point student is undefined.
>
>struct student
Now you define student.
>{
> char name[10]; // for the name of the student
> int BN;// for the bench number
> int year ,section,exam;
> double mark;
>}; //for the mark of the student
Code: struct student
{
char name[10]; // for the name of the student
int BN;// for the bench number
int year ,section,exam;
double mark;
}; //for the mark of the student
void sort_fn(student k,int size);
void show_fn(student k ,int size);
__________________ http://www.freechess.org |
| swoopy is offline | |
| | #11 |
| Registered User Join Date: Feb 2004
Posts: 127
| thanks alot really i didnt take care about that .. thanks alot but there are still errors found Compiling... d.cpp E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(108) : error C2664: 'sort_fn' : cannot convert parameter 1 from 'struct student *' to 'struct student' No constructor could take the source type, or constructor overload resolution was ambiguous E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(109) : error C2664: 'show_fn' : cannot convert parameter 1 from 'struct student *' to 'struct student' No constructor could take the source type, or constructor overload resolution was ambiguous E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(126) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(126) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(126) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(126) : error C2228: left of '.mark' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(128) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(129) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(129) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(130) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(139) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(139) : error C2228: left of '.name' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(139) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(139) : error C2228: left of '.section' must have class/struct/union type E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(139) : error C2676: binary '[' : 'struct student' does not define this operator or a conversion to a type acceptable to the predefined operator E:\Program Files\Microsoft Visual Studio\MyProjects\dsdsds\d.cpp(139) : error C2228: left of '.mark' must have class/struct/union type Error executing cl.exe. d.exe - 16 error(s), 0 warning(s) thanks in advance |
| undisputed007 is offline | |
| | #12 |
| Registered User Join Date: Oct 2001
Posts: 2,936
| >void sort_fn(student k,int size); >void show_fn(student k ,int size); You are passing an array of student structs, so: void sort_fn(student k[],int size); void show_fn(student k[] ,int size); And don't forget to change these: >void sort_fn(student & k,int size) >void show_fn(student & k ,int size) void sort_fn(student k[],int size) void show_fn(student k[] ,int size)
__________________ http://www.freechess.org |
| swoopy is offline | |
| | #13 |
| Registered User Join Date: Feb 2004
Posts: 127
| thanks alot ![]() it works now thanks again |
| undisputed007 is offline | |
![]() |
| Thread Tools | |
| Display Modes | |
|
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| struct pointer | t014y | C Programming | 5 | 01-26-2009 03:50 PM |
| Dynamic array of structures containing yet another dynamic array of structures | innqubus | C Programming | 2 | 07-11-2008 07:39 AM |
| pointer problem or so... | TL62 | C Programming | 19 | 01-12-2008 11:45 PM |
| Pointer to array of string and Array of Pointer to String | vb.bajpai | C Programming | 2 | 06-15-2007 06:04 AM |
| Direct3D problem | ahluka | Game Programming | 10 | 04-09-2006 03:36 AM |