30/09/2018, 20:57
Cách lấy giá trị biến n ra khỏi hàm trong C?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Sinhvien{
char hoten[30];
char lop[10];
int tuoi;
}SV;
void NhapDuLieu(SV x[], int *n);
void InDuLieu(SV x[], int n);
void TimSinhVien(SV x[], int n);
int main(){
SV x[10];
char timten[30];
int chon, n;
while(chon != 4){
printf("
Chon 1 de Nhap danh sach sinh vien");
printf("
Chon 2 de Hien thi danh sach sinh vien");
printf("
Chon 3 de Tim kiem sinh vien theo ten");
printf("
Chon 4 de Ket thuc");
printf("
Moi ban chon: "); scanf("%d", &chon);
switch(chon){
case 1:{
printf("%d", n);
NhapDuLieu(x, &n);
printf("%d", n);
break;
}
case 2:{
InDuLieu(x, n);
break;
}
case 3:{
TimSinhVien(x, n);
break;
}
case 4:
break;
default:
printf("Ban da chon khong dung, moi ban nhap lai.
");
}
}
return 0;
}
void NhapDuLieu(SV x[], int *n){
int i;
printf("Nhap so luong sinh vien: ");
scanf("%d", &n);
for(i = 0; i < n; i++){
printf("Sinh vien %d
Nhap ho ten: ", i + 1);
fflush(stdin);
gets(x[i].hoten);
printf("Nhap tuoi: ");
scanf("%d", &x[i].tuoi);
printf("Nhap lop: ");
fflush(stdin);
gets(x[i].lop);
}
}
void InDuLieu(SV x[], int n){
int i;
printf("STT Ho Ten Tuoi Lop
");
for(i = 0; i < n; i++){
printf("%d %s %d %s
", i + 1, x[i].hoten, x[i].tuoi, x[i].lop);
}
}
void TimSinhVien(SV x[], int n){
int i;
char timten[30];
printf("Nhap ten sinh vien muon tim: ");
fflush(stdin);
gets(timten);
printf("STT Ho Ten Tuoi Lop
");
for(i = 0; i < n; i++)
if(strcmp(x[i].hoten, timten) == 0)
printf("%d %s %d %s
", i + 1, x[i].hoten, x[i].tuoi, x[i].lop);
}
Ai xem giúp mình cách sửa bài này ntn với. Làm thế nào để lấy giá trị vào biến n khi ra khỏi hàm NhapDuLieu vậy. Ai biết giúp mình với. Cảm ơn mn
Bài liên quan
Nhapdulieu(...*n)
int Nhapdulieu... return n
Mình làm theo cách 1 rồi nhưng không được. Cậu xem qua code của mình đc k
Thế thì theo cách 2 đi. Không dùng con trỏ cho đỡ phức tạp
Bài mình dùng cách 2 làm sao đc cậu ơi. :(( cậu xem code mình đi
chỗ này sửa lại là
scanf("%d",n);
hoặcscanf("%d",&(*n))
;sửa lại:
for(i=0;i<(*n);i++)
Hay quá code chạy ngon rồi. Cảm ơn @freedom và @Gio nhé
Bạn nên nhấn vào dấu check ở bên dưới mỗi câu trả lời để cảm ơn các bạn đã giúp mình ^^