【发布时间】:2021-03-14 08:30:54
【问题描述】:
这是最初的问题:
写一个函数
repeating_group(char* arr[], int n);在哪里,
arr[]: 预定义的要操作的字符串数组n:arr[]的大小并返回
char* res[]并将重复的字符串组合在一起。例子:
输入:
char* arr[] = {"tut", "slf", "tut", "lzyy", "slf", "tut"};输出:
char* res[] = {"tut", "tut", "tut", "slf", "slf", "lzyy"}
这是我的代码:
#include<stdio.h>
char repeating_group(char*arr[],int n)
{
int i,j;
printf("char*res[]= {");
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(arr[i]==arr[j])
{
printf("\"%s\",\"%s\",",arr[i],arr[j]);
}
}
}
printf("}");
}
int main()
{
char*arr[]={"Carrot","Tomato","Mustard","Carrot","Mustard","Tomato","Potato","Brinjal"};
int n=sizeof(arr)/sizeof(arr[0]);
repeating_group(arr,n);
getchar();
return 0;
}
这里的问题是它只打印需要的东西,但不返回应该存储元素的数组。
【问题讨论】:
-
因此您需要将
printf的代码替换为将值插入数组的不同代码。你试过这样做吗?有什么困难? -
请注意,对数组进行排序更简单、更快捷。
-
你可以试试this