第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

能幫我解釋一下這個程序嗎?特別是我標注的幾個地方,看不懂

能幫我解釋一下這個程序嗎?特別是我標注的幾個地方,看不懂

C
mrs_empress 2016-10-06 19:20:15
查看完整描述

7 回答

?
慕斯3948292

TA貢獻2條經(jīng)驗 獲得超2個贊

//望采納,嘻嘻
/*?這個程序是讀入一組文本行,并把最長的文本行打印出來?*/?
#include?<stdio.h>
#define?MAXLINE?1000
?
int?getline(char?line[],int?maxiline);
void?copy(char?to[],char?from[]);
/*?打印最長的輸入行?*/?
main()
{
????int?len;????????????????????/*?當前行長度??*/?
????int?max;???????????????????/*?目前為止發(fā)現(xiàn)的最長行的長度?*/?
????char?line[MAXLINE];???????/*?當前的輸入行?*/?
????char?longest[MAXLINE];???/*?用于保存最長的行?*/?
/*?打印最長的輸入行??*/????
????max?=?0;
????while?((len?=?getline(line,MAXLINE))?>?0)
????????if?(len?>?max){
????????????max?=?len;
????????????copy(longest,line);
????????}
????if?(max?>?0)??????????/*?存在這樣的行??*/???????????//這里的if語句是為了判斷是否有輸入行,有則輸出最長的,沒有就return?0;
????????printf("%s",longest);
????return?0;
}
/*?getline函數(shù):將一行讀入到s中并返回其長度??*/?
int?getline(char?s[],int?lim)
{
????int??c,i;
????for?(i=0;?i<lim-1?&&?(c=getchar())!=EOF?&&?c!='\n';?++1)???//因為i是從0開始的,所以i最后到lim-1
????????s[i]?=?c;
????if?(c?==?'\n'){??????????????????//前面不等于\n成立時只執(zhí)行s[i]?=?c;。后面的等于\n,不僅要執(zhí)行s[i]?=?c;?還要執(zhí)行++i;
???????s[i]?=?c;?
????????++i;
????}???
????s[i]?=?'\0';????????????????????//在c語言中,字符是按其所對應的ASCII碼來存儲的,一個字符占一個字節(jié)。第一個ASCII碼,對是0,對應的字符是(Null),其實就是‘\0’,即空字符。可以通過如下ASCII碼表來查詢到。????
????return?i;??????????
}
/*?copy函數(shù):將from復制到to;這里假定to足夠大??*/?
void?copy(char?to[],char?from[])
{
????int?i;
?????
????i=0;
????while?((to[i]?=?from[i])?!=?'\0')
????????++i;
}
查看完整回答
1 反對 回復 2016-10-07
  • mrs_empress
    mrs_empress
    謝謝,剛開始沒有看到你的回復,不好意思呀!
?
慕粉4050269

TA貢獻1條經(jīng)驗 獲得超0個贊

數(shù)組最后以/0為結(jié)束的
查看完整回答
反對 回復 2016-10-06
?
mrs_empress

TA貢獻11條經(jīng)驗 獲得超2個贊

/*?這個程序是讀入一組文本行,并把最長的文本行打印出來?*/?
#include?<stdio.h>
#define?MAXLINE?1000

int?getline(char?line[],int?maxiline);
void?copy(char?to[],char?from[]);
/*?打印最長的輸入行?*/?
main()
{
	int?len;????????????????????/*?當前行長度??*/?
	int?max;???????????????????/*?目前為止發(fā)現(xiàn)的最長行的長度?*/?
	char?line[MAXLINE];???????/*?當前的輸入行?*/?
	char?longest[MAXLINE];???/*?用于保存最長的行?*/?
/*?打印最長的輸入行??*/?	
	max?=?0;
	while?((len?=?getline(line,MAXLINE))?>?0)
		if?(len?>?max){
			max?=?len;
			copy(longest,line);
		}
	if?(max?>?0)??????????/*?存在這樣的行??*/???????????//這里的if語句有什么用,是為了排除'\0'的存在嗎?
		printf("%s",longest);
	return?0;
}
/*?getline函數(shù):將一行讀入到s中并返回其長度??*/?
int?getline(char?s[],int?lim)
{
	int??c,i;
	for?(i=0;?i<lim-1?&&?(c=getchar())!=EOF?&&?c!='\n';?++1)???//這里的lim-1是什么意思?且我用軟件編譯時提示錯誤,為什么??
		s[i]?=?c;
	if?(c?==?'\n'){??????????????????//為什么前面不等于\n,現(xiàn)在要等于\n,做的事情不是都一樣嗎??
		s[i]?=?c;	
		++i;
	}	
	s[i]?=?'\0';????????????????????//為什么又把它變?yōu)?,那么賦值有什么作用呢??
	return?i;			
}
/*?copy函數(shù):將from復制到to;這里假定to足夠大??*/?
void?copy(char?to[],char?from[])
{
	int?i;
	
	i=0;
	while?((to[i]?=?from[i])?!=?'\0')
		++i;
}


查看完整回答
反對 回復 2016-10-06
?
mrs_empress

TA貢獻11條經(jīng)驗 獲得超2個贊

這里的'\0'是代表空字符,看錯了,但是仍有問題,為什么又把s【i】=0,那這樣前面的不就沒用了嗎?

查看完整回答
反對 回復 2016-10-06
  • 7 回答
  • 0 關注
  • 1786 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號