Tìm các chuỗi có độ dài nhỏ nhất trả lại các chuỗi tìm được cho hàm main để in ra kết quả

#include<stdio.h>
#include<string.h>

void nhap(char str[][30], int *N){
	int i;
	do{
		printf("\nNhap N: ");
		scanf("%d",&*N);
		fflush(stdin);
		if (*N<0 || *N>100)
			printf("\nNhap lai N");
	}while (!(*N>0 && *N<100));
	printf("\nKhai bao mang");
	for (i=0;i<*N;i++){
		printf("\nChuoi %d: ",i);
		gets(str[i]);
	}
}

char in_dodaiMin(char str[][30], int N){
	int i, imin=0, min = strlen(str[0]);
	for (i=0;i<N;i++){
		if (strlen(str[i]) < min){
			min = strlen(str[i]);
			imin = i;
		}
	}
	return imin;
}

void main(){
	char str[40][30];
	int N;
	nhap(str,&N);
	printf("\nChuoi co do dai min: %s",str[in_dodaiMin(str,N)]);
}

yêu cầu là tìm độ dài nhỏ nhất trong các chuỗi, sau đó tìm tất cả các chuỗi có độ dài nhỏ nhất và trả về cho hàm main để in ra. mình làm như trên nhưng nó chỉ in được 1 kết quả.

1 Like

Hàm dodaimin nên trả về độ dài nhỏ nhất. Khi xuất thì so sánh các xâu xem cùng độ dài min đó không

2 Likes

so sánh khi xuất sao vậy bạn?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?