其實你這里主要問題是不能接收到兩個輸入的

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、磐石網(wǎng)絡推廣、成都微信小程序、磐石網(wǎng)絡營銷、磐石企業(yè)策劃、磐石品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供磐石建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:chinadenli.net
字符串
。
你這里的接受
規(guī)則
是輸入兩個字符串并用
,
號分隔,比如: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;//?修改,當然這句不改沒關(guān)系
}
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;
}
指針?你的意思傳引用調(diào)用么?
void mission(const int *,const int*); //函數(shù)原型,若不改變原參數(shù)值,加const修飾較為妥當
int main() //在主函數(shù)中調(diào)用比較函數(shù)mission,并傳入欲比較的2個變量的地址
{
int a,b;
...
mission(a,b);
...
}
void mission(const int *num1,const int *num2) //比較函數(shù)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)); //差
}
個人覺得只是實現(xiàn)兩個數(shù)比較大小,相加減,輸出最大,最小,兩個數(shù)的和功能的話,沒有必要指針實現(xiàn)的,傳值調(diào)用即可。當然若需要在被調(diào)用函數(shù)中修改原參數(shù)值,或者比較數(shù)據(jù)量較大為節(jié)省內(nèi)存空間的話也可用傳引用調(diào)用。
希望可以幫助到你。
字符串的比較
如果相等,返還0。
如果第一個字符串小于第二個串,則返回一個負數(shù)。
如果第一個串大于第二個串,則返還一個正數(shù)。
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;
}
標題名稱:c語言指針比較函數(shù) c語言指針函數(shù)實例
網(wǎng)頁地址:http://chinadenli.net/article6/hihcog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、ChatGPT、App開發(fā)、企業(yè)建站、網(wǎng)站設(shè)計公司、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)