30/09/2018, 18:25
Giải thích về" lệnh printf " trong hàm main
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int s = 1;//tim kc nn tu s den tat ca cac dinh
int const max = 20;
int a[max];//day so cho truoc
int mtk[max][max], n;
int d[max][max];//d[i][j]:kcnho nhât tu ai den aj
int p[max][max];//p[i][j]:dinh truoc dinh j tren duong nn tu i den j
int const avc = -100; //am vo cuc
void DocFile() {
int x;
FILE *f = fopen("E:\daytang.txt", "r");// ta mở tập tin daytang.txt"kiểm tra xem nếu tập tin bằng null thì
if (f == NULL) { //file ko tồn tại còn ngược lại trả về EOF(-1)
printf("
File %s khong co");
}
n = 0;
while (fscanf(f, "%d", &x) != EOF) //
a[++n] = x;
fclose(f);
}
void matranke()
{
int i,j;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if (i == j)
mtk[i][j] = 0;
else mtk[i][j] = avc;
for (i = 1; i<n; i++)
for (j = i + 1; j <= n; j++)
if (a[i] <= a[j])
mtk[i][j] = 1;
else
mtk[i][j] = -1;
}
void Floyd() { //đường đi ngắn nhất
int i, j, k;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++) {
d[i][j] = mtk[i][j];
p[i][j] = i;
}
for (k = 1; k <= n; k++)
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if (d[i][j]<d[i][k] + d[k][j]) {
d[i][j] = d[i][k] + d[k][j];
p[i][j] = p[k][j];
}
}
void main() {
int i, j, k, i0, j0;
DocFile();
matranke();
for (i = 1; i <= n; i++)
printf("%3c%d", 'a', i);
printf("
");
for (i = 1; i <= n; i++)
printf("%4d", a[i]);
Floyd();
printf("
Day con khong giam dai nhat: ");
k = avc;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if (d[i][j]>k) {
k = d[i][j];
i0 = i;
j0 = j;
}
k = j0;
while (k != i0) {
printf("a%d-->",k);
k = p[i0][k];
}
printf("a%d: chieu dai=%d", i0, d[i0][j0] + 1);
printf("
");
system("pause");
}
Và
printf("
Day con khong giam dai nhat: ");
k = avc;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if (d[i][j]>k) {
k = d[i][j];
i0 = i;
j0 = j;
}
k = j0;
while (k != i0) {
printf("a%d-->",k);
k = p[i0][k];
}
printf("a%d: chieu dai=%d", i0, d[i0][j0] + 1);
printf("
");
Bài liên quan
Em muốn biết gì về hàm
printf
?Có vẻ em chưa học qua lập trình? Sao em không thử học một khóa học chuyên nghiệp và miễn phí này nhỉ
bài này em đang cần à
anh có thể giải thích
Nhìn cách em copy code có vẻ như em không biết lập trình?
Hàm
printf
là hàm dùng để in text ra ngoài thiết bị out, có thể là màn hình máy tính, máy in, file, …Hàm
printf
có cấu trúc để có thể truyền giá trị từ biến vào chuỗi để tạo thành một chuỗi hoàn chỉnh, nội dung thay đổi tùy thuộc vào giá trị mà biến truyền vàoVới lệnh trên thì format của lệnh
printf
là đoạnTrong đó:
%d:
sẽ được thay thế bởi một sốỞ đây ta có 2 chỗ có
%d
, 2 vị trí này sẽ được thay bằng hai biến hoặc giá trị hoặc kết quả của một phép toán. Phần tiếp theo của lệnhprintf
sẽ thay vào 2 vị trí đấyỞ đây giá trị của
i0
sẽ thay vào%d
thứ nhấtVà giá trị của
d[i0][j0] + 1
sẽ thay vào%d
thứ hai.Tới đây là xong phần giải thích và anh rất mong em sẽ học lập trình từ đầu. Bắt đầu bằng cơ bản, không nên đặt những câu hỏi thế này vì nó sẽ không giúp ích gì nhiều cho em đâu.
Em có thể học từ chương trình mà anh biên soạn ở đây:
Chúc em học tốt.
em chỉ học C++ thui a nhưng hình như 2 cái đó có liên wan hả a
Có liên quan một tí. Ban đầu C được tạo ra trước, sau đó Bjarne Stroustrup mới thêm hướng đối tượng vào để tạo ra C++ và bây giờ thì C++ đã thêm rất nhiều thứ vào đấy và đã khác C khá nhiều rồi.
Em đọc thêm ở đây:
C (ngôn ngữ lập trình)
Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất. C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù nó cũng được dùng cho việc viết các ứng dụng. Ngoài ra, C cũng thường được dùng làm phương tiện giảng dạy trong khoa học máy tính mặc dù ngôn ngữ này không được thiết ...
Topic này đã giải quyết xong câu hỏi về
printf
tiếp tục trả lời các vấn đề khác là off-topic