chào mọi người. em đang luyện tập bài Sparse Arrays trên hackerRank. đề bài nó như dưới đây:
em làm theo cách so sánh từng string trong querry
với trong array
. khi chạy thì bị lỗi segment fault. dưới đây là code của em:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int array_count,query_count;
//nhập vào array
scanf("%d", &array_count);
char **array=malloc(array_count*sizeof(char *));
for (int i = 0; i < array_count; i++)
{
array[i]=malloc(30*sizeof(char));
fgets(array[i], 30, stdin);
}
//nhập vào query
scanf("%d", &query_count);
int count[query_count];
char **query=malloc(query_count*sizeof(char *));
for (int i = 0; i < query_count; i++)
{
query[i]=malloc(30*sizeof(char));
fgets(query[i], 30, stdin);
}
// so từng string trong query với trong array
for (int i = 0; i < query_count; i++)
{
for (int j = 0; j < array_count; j++)
{
if(strcmp(array[j], query[i])) ++count[i];
}
printf("%d", count[i]);
}
free(array);
free(query);
return 0;
}
P/s: mọi người có cách làm tối ưu hơn không cho em tham khảo với. cảm ơn mọi người nhiều