有2个功能,第一个字的计算重量,二是检查该字的具有最大的价值,并返回它的地址,我的问题是每当我使双指针和将值插入它然后“插入”是指向我的功能,它不能在它读出值。(不是最好的英语对不起,我已经尽了全力)
它只是每当在主函数复制我的功能,并与循环运行它的作品,我还是新,所以试图解释这个问题,请尝试,如果它的愚蠢的问题不恼!
#include<stdio.h>
#include<string.h>
int calc_weight(char* word);
char* max_weight(char* s[], int n);
int main()
{
char s[5][10];
for (int i = 0; i < 5; i++)
scanf("%s", (s + i));
printf("%s\n",max_weight(s, 5));
return 0;
}
int calc_weight(char* word) //calculates weight of the word
{ //assuming this function gets only small letters a...z
int counter = 0;
for (int i = 0; i < strlen(word); i++)// a=1,b=2...
counter += word[i] - 'a' + 1;
return counter;
}
char* max_weight(char* s[], int n)
{
int maxind = 0;
for (int i = 1; i < n; i++)
if (calc_weight(s + i) > calc_weight(s + maxind))
maxind = i;
return (s+maxind);
}
答案 0 :(得分:0)
在max_weight
中,当您写char* s[]
时表示:
将s声明为指向char的指针
但是您没有传递指针数组。
char s[][10]
像这样:
char* max_weight(char s[][10], int n)
告诉s
是指向10个字符的数组的指针。