调用函数后,得到结果不对
本帖最后由 无情修罗 于 2015-3-29 15:56 编辑#include <stdio.h>
#include <string.h>
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=2, lineLen<=80, 考生可在本行后添加代码、最多2行、行长<=80字符) */
int input(char *from[],char (*p));
void find(char *from[],int n,int *findmax);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void)
{
char *pStr, str;
int Count=0, max;
printf("****Input strings****\n");
Count = input(pStr, str);
printf("\nmax = ");
find(pStr, Count, &max);
printf("%s\n", pStr);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int input(char *from[],char (*p))
{
int i,j=0;
char *temp;
for(i=0;i<50;i++)
{
gets(*(p+i));
if(strcmp(*(p+i),"*End*")==0)
{
break;
}
else
{
from = *(p+i);
}
}
return j;
}
void find(char *from[],int n,int *findmax)
{
int i,j;
i=j=0;
char *temp;
*temp = *from;
findmax = &j;
for(i=1;i<n;i++)
{
if(strcmp(temp,from)<0)
{
temp = from;
findmax=&i;
}
}
*findmax = *findmax -1;
printf("%d\n",*findmax);
}我想问一下为什么调用find函数后,max的值与函数中最后的findmax的值不一样
本帖最后由 haiouda 于 2015-3-30 10:42 编辑
#include <stdio.h>
#include <string.h>
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=2, lineLen<=80, 考生可在本行后添加代码、最多2行、行长<=80字符) */
int max=0;
int input(char *from[],char p);
void find(char *from[],int n,int *findmax);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void)
{
char *pStr, str;
int Count=0, max;
printf("****Input strings****\n");
Count = input(pStr, str);
printf("\nmax = ");
find(pStr, Count, &max);
printf("%s\n", pStr);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int input(char *from[],char p)
{
int i,j=0;
char *q="*END*";
for(i=0;i<50;i++)
{
gets(p);
if( strcmp(p,q)==0 )
break;
else
{
from = *(p+i);
}
}
return j;
}
void find(char *from[],int n,int *findmax)
{
char *temp1;
int i,j;
i=j=0;
for(i=0;i+1<n;i++)
{
if(strcmp(from,from)<0)
{
temp1 = from;
from=from;
from=temp1;
*findmax=i+1;
}
}
printf("%d\n",*findmax);
}
改了下,可以运行了 本帖最后由 haiouda 于 2015-4-1 23:02 编辑
没用的删除了
试着调了下,没运行不知道,还有没有错的地方;
{:1_1:} 学习了一下 haiouda 发表于 2015-3-29 17:29
试着调了下,没运行不知道,还有没有错的地方;
还是有问题 本帖最后由 haiouda 于 2015-4-1 23:01 编辑
无情修罗 发表于 2015-4-1 21:15
还是有问题
什么问题?
二楼的,我在我机器上运行了。
比较大小这里,实际大小的应该比算出来的少1,因为二楼的程序 i 是0开始的。*pStr; 也是从0 开始的,这里不算问题哟。
页:
[1]