Chào các bạn!
Hiện nay, hệ thống được sử dụng để thi thực hành cuối kỳ cho một số lớp. Do đó, hệ thống sẽ tạm dừng hoạt động.
Announcement
Collapse
No announcement yet.
Nơi luyện tập về lập trình C - Môn Nhập môn Lập trình
Collapse
X
-
[QUOTE=14520990;312971]Dạ Thầy ơi xem giùm em mấy bài này. Test tay thì ra kết quả nhưng lúc chấm bị báo lỗi. E cảm ơn ạ!
Originally posted by 14520990 View Post1. Bài: Chuỗi đọc ngược
PHP Code:
Originally posted by 14520990 View Post2. Bài: Cộng số lớn
PHP Code:
Và chỗ FILE *fi = fopen("BaiF.inp", "rt") em chú ý có chữ t trong rt nữa
Originally posted by 14520990 View Post3. Bài: Lãi Suất
PHP Code:
Originally posted by 14520990 View Post4. Bài: Tính điểm trung bình
PHP Code:
Tôi quên mất bài này, Tôi xin trả lời như sau:Last edited by toannv; 12-01-2015, 15:54.
Leave a comment:
-
Dạ Thầy cho e hỏi lỗi "Run-time check failure #2 - Stack around the variable 'a' was corrupted" của bài này là sao ạ?
PHP Code:#include <stdio.h>
int main()
{
int n, m, i;
n = 100;
long a[100], b[100];
printf("Nhap m: ");
scanf("%d", &m);
for (i = 2; i <= n; i++)
a[i] = i;
i = 2;
int dem = -1;
while (i <= n)
{
if (a[i] > 0)
{
for (int j = i + 1; j <= n; j++)
if (j%i == 0)
a[j] = 0;
dem++;
b[dem] = i;
}
i++;
}
printf("\n\nSo nguyen to thu m: %ld", b[m]);
printf("\n\n\n");
return 0;
}
Leave a comment:
-
Dạ Thầy ơi xem giùm em mấy bài này. Test tay thì ra kết quả nhưng lúc chấm bị báo lỗi. E cảm ơn ạ!
1. Bài: Chuỗi đọc ngược
PHP Code:# include <stdio.h>
# include <string.h>
# include <stdlib.h>
//In Dao Nguoc
void xuatnguoc(char *s)
{
int a[50];
char *p;
char temp[20];
int vtri = -1;
int dem = -1;
while ((p = strchr(s + vtri + 1, ' ')) != NULL)
{
dem++;
vtri = p-s;
a[dem] = vtri;
}
if (dem == -1)
{
printf("%s", s);
}
else
{
strncpy(temp, s + a[dem] + 1, strlen(s) - a[dem] - 1);
temp[strlen(s) - a[dem] - 1] = NULL;
printf("\n\n\n%s", temp);
for (int i = dem; i > 0; i--)
{
strncpy(temp, s + a[i - 1], a[i] - a[i - 1]);
temp[a[i] - a[i - 1]] = NULL;
printf("%s", temp);
}
strncpy(temp, s, a[0]);
temp[a[0]] = NULL;
printf(" %s\n", temp);
}
}
int main()
{
char s[200];
while (strlen(gets(s)) > 0)
{
xuatnguoc(s);
}
printf("\n");
return 0;
}
PHP Code:#include <stdio.h>
#include <string.h>
void tong(char *s1, char *s2)
{
int i1, i2;
i1 = strlen(s1) - 1;
i2 = strlen(s2) - 1;
while (i1 >= 0 || i2 >= 0)
{
if (i1 >= i2 && i2>=0)
{
if (i1 > 0)
{
if (s1[i1] + s2[i2] - 48 * 2 >= 10)
{
s1[i1 - 1] += 1;
}
s1[i1] = (s1[i1] + s2[i2] - 48 * 2) % 10 + 48;
}
else s1[i1]=s1[i1]+s2[i2]-48;
}
else if (i1 >= i2 && i2<0)
{
if (i1 > 0)
{
if (s1[i1] + '0' - 48 * 2 >= 10)
{
s1[i1 - 1] += 1;
}
s1[i1] = (s1[i1] + '0' - 48 * 2) % 10 + 48;
}
else s1[i1] = s1[i1] + '0' - 48;
}
else if (i2>i1 && i1>=0)
{
if (i2 > 0)
{
if (s1[i1] + s2[i2] - 48 * 2 >= 10)
{
s2[i2 - 1] += 1;
}
s2[i2] = (s1[i1] + s2[i2] - 48 * 2) % 10 + 48;
}
else s2[i2] = s1[i1] + s2[i2]-48;
}
else if (i2 >= i2 && i1<0)
{
if (i2 > 0)
{
if (s2[i2] + '0' - 48 * 2 >= 10)
{
s2[i2 - 1] += 1;
}
s2[i2] = (s2[i2] + '0' - 48 * 2) % 10 + 48;
}
else s2[i2] = s2[i2] + '0' - 48;
}
i1--;
i2--;
}
if (strlen(s1) >= strlen(s2))
{
while (s1[0] == '0')
strcpy(&s1[0], &s1[1]);
if (s1[0] - 48 >= 10)
{
s1[0] = (s1[0] - 48) % 10 + 48;
printf("1");
}
if (s1[0] != NULL) puts(s1);
else printf("0\n");
}
else
{
while (s2[0] == '0')
strcpy(&s2[0], &s2[1]);
if (s2[0] - 48 >= 10)
{
s2[0] = (s2[0] - 48) % 10 + 48;
printf("1");
}
if (s2[0] != NULL) puts(s2);
else printf("0\n");
}
}
int main()
{
int n;
char s1[200], s2[200];
FILE *fi = fopen("BaiF.inp", "r");
fscanf(fi, "%d", &n);
for (int i = 1; i <= n; i++)
{
fscanf(fi, "%s", &s1);
fscanf(fi, "%s", &s2);
tong(s1, s2);
printf("\n");
}
fclose(fi);
return 0;
}
PHP Code:#include <stdio.h>
void thanhtien(double &tien, int thang, float laisuat)
{
for (int i = 1; i <= thang; i++)
{
tien = tien + tien*laisuat;
}
}
int main()
{
int n;
double tien;
int thang;
float laisuat;
FILE *fi = fopen("FileI.inp", "r");
fscanf(fi, "%d", &n);
for (int i = 1; i <= n; i++)
{
fscanf(fi, "%lld %d %f", &tien, &thang, &laisuat);
thanhtien(tien, thang, laisuat);
printf("%lld\n", tien);
}
fclose(fi);
return 0;
}
PHP Code:#include <stdio.h>
#include <string.h>
//
struct _MonHoc
{
float Diem;
int TC;
}typedef MonHoc;
//
struct _SV
{
char MSSV[10];
char HoTen[30];
MonHoc Mon[20];
float DTB;
}typedef SV;
// Ham Doc Du Lieu Tu File
void Inp(FILE *fi, SV SinhVien[50], int &n)
{
int i, STC;
float s;
while (!feof(fi))
{
fscanf(fi, "%s\n", &SinhVien[n].MSSV);
fgets(SinhVien[n].HoTen, 30, fi);
SinhVien[n].HoTen[strlen(SinhVien[n].HoTen) - 1] = '\0';
i = 0;
s = 0;
STC = 0;
while (1)
{
fscanf(fi, "%f(%d)", &SinhVien[n].Mon[i].Diem, &SinhVien[n].Mon[i].TC);
s = s + (SinhVien[n].Mon[i].Diem)*(SinhVien[n].Mon[i].TC);
STC += SinhVien[n].Mon[i].TC;
i++;
if (fgetc(fi) == 10 || feof(fi)) break;
}
SinhVien[n].DTB = s / STC;
n++;
}
fclose(fi);
}
// Ham Sap Xep
void Sort(SV SinhVien[50], int n)
{
SV temp;
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n;j++)
if (SinhVien[i].DTB < SinhVien[j].DTB)
{
temp = SinhVien[i];
SinhVien[i] = SinhVien[j];
SinhVien[j] = temp;
}
}
// Vi Thu
void Out(SV SinhVien[50], int n)
{
int ViThu[50];
ViThu[0] = 1;
printf("\n\n%s\t%s\t%4.2f\t%d", SinhVien[0].MSSV, SinhVien[0].HoTen, SinhVien[0].DTB, ViThu[0]);
for (int i = 1; i < n; i++)
{
if (SinhVien[i].DTB == SinhVien[i - 1].DTB)
ViThu[i] = ViThu[i - 1];
else
ViThu[i] = i + 1;
printf("\n\n%s\t%s\t%4.2f\t%d", SinhVien[i].MSSV, SinhVien[i].HoTen, SinhVien[i].DTB, ViThu[i]);
}
}
//
int main()
{
FILE *fi = fopen("BaiG.inp", "r");
SV SinhVien[50];
int n = 0;
Inp(fi, SinhVien, n);
Sort(SinhVien, n);
Out(SinhVien, n);
printf("\n\n\n");
return 0;
}
Last edited by 14520990; 08-01-2015, 20:49.
Leave a comment:
-
Thầy xem giúp em code e lỗi bộ test nào?!
bộ test
280 341 7 526 749 23
480 43 388 555 317 949
em chạy ra 1. (ba điểm này không thẳng hàng nên tạo thành tam giác, em dùng tỉ lệ để xét, nên k có sai số)
PHP Code:#include <stdio.h>
#include <math.h>
typedef struct tagDiem
{
int x,y;
}DIEM;
typedef struct Phanso
{
int Tu;
int Mau;
}Phanso;
Phanso Toigian(Phanso a)
{
if (a.Tu==0 || a.Mau==0) return a; //neu co tu hoac mau = 0 thi xem nhu la toi gian
int Tu, Mau;
Tu = abs(a.Tu);
Mau=abs(a.Mau);
while (Tu!=Mau)
if (Tu>Mau)
Tu=Tu-Mau;
else
Mau=Mau-Tu;
a.Tu=a.Tu/Tu;
a.Mau=a.Mau/Tu;
if (a.Mau<0)
{
a.Mau= - a.Mau;
a.Tu= - a.Tu;
}
return a;
}
int DoDaiCanh(DIEM M,DIEM N) //em khong lay can vi nhu v se sai so
{
int l;
l = (M.x-N.x)*(M.x-N.x) + (M.y-N.y)*(M.y-N.y);
return l;
}
char Trung(DIEM A, DIEM B) //kiem tra 2 diem trung nhau
{
if (A.x==B.x&&A.y==B.y) return 1;
return 0;
}
char ThangHang(DIEM A, DIEM B, DIEM C) //kiem tra 3 diem thang hang
{
Phanso a,b;
a.Tu = B.x - A.x; //vecto AB
a.Mau = B.y - A.y;
b.Tu = C.x - A.x; //vecto AC
b.Mau = C.y - A.y;
a = Toigian(a);
b = Toigian(b);
if (a.Tu==0 && b.Tu ==0) return 1;
if (a.Mau==0 && b.Mau ==0) return 1;
if (a.Tu==b.Tu&&a.Mau==b.Mau) return 1;
return 0;
}
char TamGiac(DIEM A, DIEM B, DIEM C)
{
if (Trung(A,B)||Trung(A,C)||Trung(C,B))
return 0;
if (ThangHang(A,B,C))
return 0;
return 1;
}
main()
{
int AB,BC,AC;
DIEM A,B,C;
char result; //0:Khong la tg
//1:Tgiac thuong
//2:Tgiac vuong
//3:Tgiac can
//4:Tgiac deu
while (scanf("%d%d%d%d%d%d",&A.x,&A.y,&B.x,&B.y,&C.x,&C.y)>0)
{
AB = DoDaiCanh(A,B);
AC = DoDaiCanh(A,C);
BC = DoDaiCanh(B,C);
int Max,Min;
Max = (((AB>AC)?AB:AC)>BC)?((AB>AC)?AB:AC):BC;
Min = (((AB<AC)?AB:AC)<BC)?((AB<AC)?AB:AC):BC;
if (!TamGiac(A,B,C))
result=0;
else if (Min == (AB+BC+AC-Min-Max) || Max == (AB+BC+AC-Min-Max))
{
result=3; //tam giac can
if (Max == Min) result=4; //tam giac deu
}
else if (Max == Min + (AB+BC+AC-Max-Min))
result=2; //tam giac vuong
else result=1; //tam giac thuong
printf("%d\n",result);
}
}
Leave a comment:
-
Originally posted by 14520692 View PostPHP Code://Tam giac
#include <stdio.h>
#include <math.h>
main(){
long x1,y1,x2,y2,x3,y3;
while(scanf("%ld%ld%ld%ld%ld%ld",&x1,&y1,&x2,&y2,&x3,&y3)>=1){
//Tinh do dai:
double c[3];
c[0]=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
c[1]=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
c[2]=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
//Kiem tra co phai là tam giac
int kq=1;
for(int i=0;i<3;i++){
if(c[i]==c[(i+1)%3]+c[(i+2)%3]) kq=0;
}
//kiem tra tam giac vuong
int v=0;
if(kq!=0)
for(int i=0;i<3;i++){
float m = (float) c[i]*c[i];
float n = (float) (c[(i+1)%3])*(c[(i+1)%3])+(c[(i+2)%3])*(c[(i+2)%3]);
if(m==n) v=1;
}
//kiem tra tam giac can hay deu
int ca=0,d=0;
if(c[0]==c[1]||c[1]==c[2]||c[0]==c[2])
{
ca=1;
if(c[0]==c[1]&&c[1]==c[2]) d=1;
}
//xuat kq:
if(kq==0) printf("0\n");
else{
if(d==1) {
printf("4\n");
ca=0;}
if(ca==1){
printf("3\n");
v=0;}
if(v==1) printf("2\n");
if(ca==0&&v==0&&d==0) printf("1\n");
}
}
}
280 341 7 526 749 23
480 43 388 555 317 949
Leave a comment:
-
Originally posted by 14520846 View Posttạo acc giùm em vs thầy ơi
14520846@gm.uit.edu.vn
Leave a comment:
Leave a comment: