Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In tên nhiều lần không dùng vòng lặp trong C


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