-
16-03-2016, 11:29 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cám ơn bạn nhiều nhé!
Cho mình hỏi thêm, Sao khi nhap xong mình mở file SV.txt lên thì nó không có hiện thị giống như mình nhập. Mà nó hiện lên các kí tự không đọc được giống dạng mã hóa.
- - - Nội dung đã được cập nhật ngày 16-03-2016 lúc 04:29 PM - - -
Sắp xếp dánh sách thí sinh có sẵn trong file theo tổng điểm giảm dần. mỗi thí sinh gồm các thông tin sau:
Mã thí sinh: là một số nguyên tự động tăng, bắt đầu là 1.
Tên thí sinh, ngày tháng năm sinh.
Diểm môn 1,2,3.
/*minh sửa lại theo đề của mình nhưng bị lỗi dòng fgets(s[i].nam,30,f) cố gắng sửa mà vẫn bị lỗi, bạn nào biết sửa giúp mình với . mình mới học lap trình c nên chưa hiểu lắm */
#include<stdio.h>
#include<conio.h>
using namespace std;
struct sinhvien
{
char hoten[30], nam[30];
float d1, d2, d3, tong;
int ma;
};
void nhap(sinhvien s[], int n)
{
int i;
for (i = 0; i<n; i++)
{ s[i].ma=i+1;
fflush(stdin);
//printf("
nhap vao sv thu %d", i + 1);
fflush(stdin);
printf("
maso: %d", s[i].ma);
// gets(s[i].ma);
printf("ho ten ");
gets(s[i].hoten);
printf("nam sinh ");
gets(s[i].nam);
do
{
printf("
Nhap vao diem mon 1: ");
scanf("%f", &s[i].d1);
if (s[i].d1 < 0 || s[i].d1 > 10)
{
printf("
Diem hoa khong hop le. Nhap lai!");
}
} while (s[i].d1 < 0 || s[i].d1 > 10);
do
{
printf("
Nhap vao diem mon 2: ");
scanf("%f", &s[i].d2);
if (s[i].d2 < 0 || s[i].d2 > 10)
{
printf("
Diem hoa khong hop le. Nhap lai!");
}
} while (s[i].d2 < 0 || s[i].d2 > 10);
// fflush(stdin);
do
{
printf("
Nhap vao diem mon 3: ");
scanf("%f", &s[i].d3);
if (s[i].d3 < 0 || s[i].d3 > 10)
{
printf("
Diem hoa khong hop le. Nhap lai!");
}
} while (s[i].d3 < 0 || s[i].d3 > 10);
s[i].tong = s[i].d1 + s[i].d2 + s[i].d3;
}
}
void xuat(sinhvien s[], int n)
{
for (int i = 0; i<n; i++)
printf("
%d %s %f",s[i].ma, s[i].hoten, s[i].tong);
}
void sapxep(sinhvien s[], int n)
{
int i, j;
sinhvien temp;
for (i = 0; i<n - 1; i++)
for (j = i + 1; j<n; j++)
{
if (s[i].tong<s[j].tong)
{
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
printf("
%s %s %s %2.2f", s[i].ma, s[i].hoten, s[i].nam, s[i].tong);;
}
}
void nhapfile(sinhvien s[], int n)
{
int i;
FILE*f;
f = fopen("D:\SV.txt", "wt");
for (i = 0; i<n; i++)
{ fflush(stdin);
fprintf(f, "
%d", s[i].ma);
fgets(s[i].hoten, 30, f);
fflush(stdin);
fgets(s[i].nam, 30, f);
fprintf(f, "%f", &s[i].d1);
fprintf(f, "%f", &s[i].d2);
fprintf(f, "%f", &s[i].d3);
}
fclose(f);
}
int main()
{
int n;
sinhvien danhsach[30];
printf(" nhap n:
");
scanf("%d", &n);
nhap(danhsach, n);
sapxep(danhsach, n);
xuat(danhsach, n);
nhapfile(danhsach, n);
getch();
}View more random threads:
- Giúp em làm 2 bài tập này với
- giúp mình tìm lỗi sai với
- khai báo hàm chuỗi kí tự
- Visual Studio 2013 bị lỗi lạ!
- đếm bao nhiêu số dương, âm, số 0
- Giúp với nhá - LinkedList - NhânViên - C++
- sắp xếp tên sách theo thứ tự abc, giúp em sủa bài này với
- Code đồ họa xoay hình. Giúp sửa?
- [Help - Mảng vuông ]
- Help !! Lỗi khi xuất danh sách liên kết đơn trong C
-
16-03-2016, 03:53 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mọi người giúp minh code khong loi, khi chạy chương trinh chạy binh thường. nhưng sinh vien 1 khong cho nhap điểm thứ 3.
/*code chạy nhưng không cho nhap điem môn thu 3,kéo theo tinh tổng diem sai, sap xếp ra ket qua sai */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
using namespace std;
struct sinhvien
{ char hoten[30], nam[30];
float d1,d2,d3,tong;
int ma;
};
void nhap(sinhvien s[],int n)
{ int i;
for(i=0;i<n;i++)
{ s[i].ma=i+1;
fflush(stdin);
printf("
nhap vao sv thu %d",i+1);
printf(" ma so: %d", s[i].ma);
printf("ho ten ");
gets(s[i].hoten);
printf("nam sinh ");
gets(s[i].nam);
do
{
printf("
Nhap vao diem mon 1: ");
scanf("%f", &s[i].d1);
if(s[i].d1 < 0 ||s[i].d1 > 10)
{
printf("
Diem hoa khong hop le. Nhap lai!");
}
}
while(s[i].d1 < 0|| s[i].d1 > 10);
do
{
printf("
Nhap vao diem mon 2: ");
scanf("%f", &s[i].d2);
if(s[i].d2 < 0 ||s[i].d2 > 10)
{
printf("
Diem hoa khong hop le. Nhap lai!");
}
}
while(s[i].d2 < 0|| s[i].d2 > 10);
}
do
{
printf("
Nhap vao diem mon 3: ");
scanf("%f", &s[i].d3);
if(s[i].d3 < 0 ||s[i].d3 > 10)
{
printf("
Diem hoa khong hop le. Nhap lai!");
}
}
while(s[i].d3 < 0|| s[i].d3 > 10);
s[i].tong=s[i].d1+s[i].d2+s[i].d3;
}
void xuat(sinhvien s[],int n)
{ int i;
for (i=0;i<n;i++)
{ printf("
%s %f",s[i].hoten,s[i].tong);;
}
}
void sapxep(sinhvien s[],int n)
{ int i,j;
sinhvien temp;
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
{ if(s[i].tong<s[j].tong)
{temp=s[i];
s[i]=s[j];
s[j]=temp;
}
printf("
%d %s %s %2.2f", s[i].ma, s[i].hoten, s[i].nam, s[i].tong);;
}
xuat(s,n);
}
void nhapfile(sinhvien s[],int n)
{int i;
FILE*f;
f=fopen("D:\SV.txt","wt");
for(i=0;i<n;i++)
{
fprintf(f,"
%d",s[i].ma);
fgets(s[i].hoten,30 ,f);
fgets(s[i].nam,30,f);
fprintf(f,"%f",&s[i].d1);
fprintf(f,"%f", &s[i].d1);
fprintf(f,"%f", &s[i].d2);
scanf("f,%f", &s[i].d3);
}
fclose(f);
}
int main()
{ int n;
sinhvien danhsach[30];
printf(" nhap n");
scanf("%d",&n);
nhap(danhsach,n);
sapxep(danhsach,n);
xuat(danhsach,n);
nhapfile(danhsach,n);
getch();
}
-
16-03-2016, 04:35 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bài bạn làm không cẩn thận nên bị thiếu dấu } làm vòng for ko chạy đúng mình sửa lại code tí
Mã:#include<stdio.h> #include<conio.h> using namespace std; struct sinhvien { char hoten[30], nam[30]; float d1, d2, d3, tong; char ma[30]; }; void nhap(sinhvien s[], int n) { int i; for (i = 0; i<n; i++) { fflush(stdin); printf(" nhap vao sv thu %d", i + 1); fflush(stdin); printf(" nhap vao ma so:"); gets(s[i].ma); printf("ho ten "); gets(s[i].hoten); printf("nam sinh "); gets(s[i].nam); do { printf(" Nhap vao diem mon 1: "); scanf("%f", &s[i].d1); if (s[i].d1 < 0 || s[i].d1 > 10) { printf(" Diem hoa khong hop le. Nhap lai!"); } } while (s[i].d1 < 0 || s[i].d1 > 10); do { printf(" Nhap vao diem mon 2: "); scanf("%f", &s[i].d2); if (s[i].d2 < 0 || s[i].d2 > 10) { printf(" Diem hoa khong hop le. Nhap lai!"); } } while (s[i].d2 < 0 || s[i].d2 > 10); // fflush(stdin); do { printf(" Nhap vao diem mon 3: "); scanf("%f", &s[i].d3); if (s[i].d3 < 0 || s[i].d3 > 10) { printf(" Diem hoa khong hop le. Nhap lai!"); } } while (s[i].d3 < 0 || s[i].d3 > 10); s[i].tong = s[i].d1 + s[i].d2 + s[i].d3; } } void xuat(sinhvien s[], int n) { for (int i = 0; i<n; i++) printf(" %s %f", s[i].hoten, s[i].tong); } void sapxep(sinhvien s[], int n) { int i, j; sinhvien temp; for (i = 0; i<n - 1; i++) for (j = i + 1; j<n; j++) { if (s[i].tong<s[j].tong) { temp = s[i]; s[i] = s[j]; s[j] = temp; } printf(" %s %s %s %2.2f", s[i].ma, s[i].hoten, s[i].nam, s[i].tong);; } } void nhapfile(sinhvien s[], int n) { int i; FILE*f; f = fopen("D:\SV.txt", "wt"); for (i = 0; i<n; i++) { fprintf(f, " %d", s[i].ma); fgets(s[i].hoten, 30, f); fgets(s[i].nam, 30, f); fprintf(f, "%f", &s[i].d1); fprintf(f, "%f", &s[i].d1); fprintf(f, "%f", &s[i].d2); scanf("f,%f", &s[i].d3); } fclose(f); } int main() { int n; sinhvien danhsach[30]; printf(" nhap n: "); scanf("%d", &n); nhap(danhsach, n); sapxep(danhsach, n); xuat(danhsach, n); nhapfile(danhsach, n); getch(); }
-
17-03-2016, 03:42 PM #4Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
minh sửa lại theo đề của mình nhưng bị lỗi dòng fgets(s[i].nam,30,f) cố gắng sửa mà vẫn bị lỗi
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...