30/09/2018, 19:56
MẢNG VÀ XÂU trong danh sách liên kết đơn
mn giúp mk với. cái dòng nhập tên vào danh sách liên kết đơn báo sai là sao?
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
struct sv{
int masv;
string ten;
int diemtoan,diemvan,diemtb;
};
struct node{
sv data;
struct node *pNext;
};
typedef struct node Node;
Node *getNode(sv x){
Node *p;
if(p==NULL ) return NULL;
else{
p->data=x;
p->pNext=NULL;
}
return p;
}
void nhap(sv x,Node *p){
p = new Node;
p->pNext = NULL;
int masv;
string hoten;
int diemtoan,diemvan,diemtb;
cout<<"
Nhap ma sinh vien: ";
cin>>masv;
p->data.masv =masv;
cout<<"
Ho ten: ";
getline(cin,hoten);
strcpy(p->data.ten,hoten);
cout<<"
Diem toan: ";
cin>>diemtoan;
p->data.diemtoan=diemtoan;
cout<<" Diem van: "; cin>>diemvan;
p->data.diemvan;
}
int tinhdiemtb(sv x){
int diemtb;
diemtb=(x.diemtoan+x.diemvan)/2;
return diemtb;
}
void in(){
Node *p;
int masv;
string ten;
int diemtoan,diemvan,diemtb;
cout << "
" << p->data.ten << " " << p->data.masv << "
" << "diem toan: " << p->data.diemtoan;
cout<<" diem van: "<<diemvan;
cout<<" "<<tinhdiemtb(p->data);
}
//Em phai lam lai cái ch??ng trình con này, vì nó ko theo ki?u danh sách liên k?t
void thuchien(sv x){
int n,chon;
Node *p;
cout<<" 1-nhap";
cout<<"
2- in";
cout<<"
moi chon.";
cin>> chon;
switch(chon){
case 1: {
cout<<"nhap so sinh vien: ";
cin>>n;
for(int i=1;i<=n;i++){
nhap(x,p);
break;
}
}
case 2: for(int i=1;i<=n;i++){
in();
break;
}
default :cout<<"
chon lai.";
}
}
int main(){
sv x;
thuchien(x);
}
Bài liên quan
Bạn khai báo ten , vs hoten la mảng ký tự nhé.
strcpy cần 2 con trỏ kiểu char. chứ k phải string
Bạn nghĩ sao nếu ứng dụng
vector
để giải quyết những bài toán như thế này nhỉmk k biết cách dùng vector
ý là khai báo hai cái kiểu char ạ?
Đúng rồi. Bạn để là mảng char là đc
Dùng vector dễ hơn và nó cũng dễ ứng dụng
Mình nghĩ vậy.
chung_nguyenChung Nguyễn
khi khai báo kiểu char thì lệnh getline k bị lỗi nhưng thao tác strcpy bị lỗi.
Mình k hiểu…