Vấn đề
In tên 10 lần không dùng vòng lặp hay goto trong C.
Giải pháp
Thường dùng vòng lặp để lặp khối mã cho đến khi điều kiện sai.
Ví dụ 1
Chương trình in tên 10 lần không dùng vòng lặp/goto (dùng đệ quy):
#include <stdio.h>
void printname(char* name, int count) {
printf("%03d : %s\n", count+1, name);
count += 1;
if (count < 10)
printname(name, count);
}
int main() {
char name[50];
printf("\nNhap ten cua ban: ");
scanf("%s", name);
printname(name, 0);
return 0;
}
Kết quả
Nhap ten cua ban: tutorialspoint 001 : tutorialspoint 002 : tutorialspoint 003 : tutorialspoint 004 : tutorialspoint 005 : tutorialspoint 006 : tutorialspoint 007 : tutorialspoint 008 : tutorialspoint 009 : tutorialspoint 010 : tutorialspoint
Ví dụ 2
Chương trình in tên 10 lần dùng vòng lặp for (để so sánh):
#include <stdio.h>
int main() {
char name[50], i;
printf("\nNhap ten cua ban: ");
scanf("%s", name);
for (i = 0; i < 10; i++) {
printf("%s\n", name);
}
return 0;
}
Kết quả
Nhap ten cua ban: TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint