扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
其实你这里主要问题是不能接收到两个输入的
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、做网站、外贸营销网站建设、磐石网络推广、成都微信小程序、磐石网络营销、磐石企业策划、磐石品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供磐石建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
字符串
。
你这里的接受
规则
是输入两个字符串并用
,
号分隔,比如:abc,abc
但是这里就有一个问题了!计算机怎么知道你输入的,号是你输入的第一个字符串的一个字符呢?还是你两个字符串的分隔?
所以当你输入abc,abc的时候计算识别你的第一个字符串是abc,abc
第二个字符串为\n
所以你这里得到的始终是1
至于解决的办法:
让计算机识别你的分隔
符号
那方法就很多了,比如
scanf("%s%s",a,b);输入的时候用空白符(
空格
,tab,回车键)相间隔
int strcmp(char *p1, char *p2)
{
while (*p1 *p2)
{
if (*p1 *p2)
return 1;
else if (*p1 *p2)
return -1;
else
{p1++; p2++;}
}
if (*p1==0 *p2==0)
return 0;
else if (*p1==0)
return -1;
else
return 1;
}
#include "stdio.h"
void max_min(int *p,int n,int max,int min)// 修改
{
int i;
max=min=p[0];// 修改
for(i=1;in;i++)
{
if(*(p+i)max) max=*(p+i);// 修改
if(*(p+i)min) min=*(p+i);// 修改
}
// return;// 修改,当然这句不改没关系
}
void input_data (int *p,int n)
{
int i;
for(i=0;in;i++)
scanf("%d",p+i);
}
int main()
{
int a[30],max,min;
input_data (a,30);
max_min(a,30,max,min);// 修改
printf("max=%d,min=%d",max,min);
return 0;
}
指针?你的意思传引用调用么?
void mission(const int *,const int*); //函数原型,若不改变原参数值,加const修饰较为妥当
int main() //在主函数中调用比较函数mission,并传入欲比较的2个变量的地址
{
int a,b;
...
mission(a,b);
...
}
void mission(const int *num1,const int *num2) //比较函数mission定义
{
printf("the bigger number is:%d\n",(*num1*num2)?*num1:*num2); //比较大小
printf(" sum is:%d\n",*num1+*num2); //和
printf(" difference is:%d\n",(*num1*num2)?(*num1-*num2):(*num2-*num1)); //差
}
个人觉得只是实现两个数比较大小,相加减,输出最大,最小,两个数的和功能的话,没有必要指针实现的,传值调用即可。当然若需要在被调用函数中修改原参数值,或者比较数据量较大为节省内存空间的话也可用传引用调用。
希望可以帮助到你。
字符串的比较
如果相等,返还0。
如果第一个字符串小于第二个串,则返回一个负数。
如果第一个串大于第二个串,则返还一个正数。
Char str1[]=”AAA” str2[]=”AAB”;
If(Strcmp(str1,str2)0)
Printf(“str1str2”);
Else if(Strcmp(str1,str2)=0)
Printf(“str1==str2)”)
Else
Printf(“str1str2)”)
==========================================
char str[]="123";
char *p;
char x[]="123";
p=str;
if(Strcmp(p,x)=0)
Printf("p==x");
运行效果:
写了一个,希望对你有帮助……
#include"stdio.h"
int
stringcmp(char
*str1,char
*str2)
{
while(*(str1++)==*(str2++));
return
*(str1-1)-*(str2-1);
}
int
main()
{
int
n;
char
str1[20],str2[20];
scanf("%d",n);
while(n0)
{
scanf("%s%s",str1,str2);
printf("%d",stringcmp(str1,str2));
}
return
0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流