當前位置:編程學習大全網 - 編程語言 - C語言編程,網絡教室即將關閉(9.1),壹道問題代碼還是沒有好的思路,在此求援,具體如下

C語言編程,網絡教室即將關閉(9.1),壹道問題代碼還是沒有好的思路,在此求援,具體如下

#include <stdio.h>

#include <string>

void main()

{

bool yh_d = false;//單引號

bool yh_s = false;//雙引號

bool zs_at = false;//@

bool zs_left = false;//((

bool zs_right = false;//))

char line[1024];

int l_line = 0;//log line

int p_line = 0;//phy line

int pro_num = 0;//program num

int end_pro = 0;//1表示program輸入結束,2表示整個輸入結束

while(fgets(line,1024,stdin) !=NULL)

{

if(strncmp(line,"##",2)==0)

{

if(p_line >0)

pro_num ++;

if(zs_left == true)

{

printf("Unter... block comment at the end of ...\n");

}

printf("Pro %d contains %d log lines and %d phy lines\n",pro_num,l_line,p_line);

p_line = 0;

l_line = 0;

break;

}

if(strncmp(line,"#",1) ==0)

{

if(p_line>0)

pro_num ++;

if(zs_left == true)

{

printf("Unter... block comment at the end of ...\n");

}

printf("Pro %d contains %d log lines and %d phy lines\n",pro_num,l_line,p_line);

p_line = 0;

l_line = 0;

continue;

}

int len = strlen(line);

p_line ++;

if(line[len-1] == '\n')

line[len-1] = 0;

bool end_line = false;

int i;

for(i = 0;line[i]!= 0; ++i)

{

if(line[i] == '#')

{

pro_num ++;

if(zs_left == true)

{

printf("Unter... block comment at the end of ...\n");

}

printf("Pro %d contains %d log lines and %d phy lines\n",pro_num,l_line,p_line);

p_line = 0;

l_line = 0;

end_pro = 1;

if(line[i+1] =='#')

{

end_pro = 2;

break;

}

}

else if(line[i] == '\'' && yh_s == false && zs_at == false && zs_left == false)

{

yh_d = (yh_d == false?true:false);

}

else if(line[i] == '\"' && yh_d == false && zs_at == false && zs_left == false)

{

yh_s = (yh_s == false?true:false);

}

else if(line[i] == '@' && yh_s == false && yh_d == false && zs_left == false)

{

zs_at = (zs_at == false?true:false);

}

else if(line[i] == '(' &&line[i+1] =='(' && yh_s == false && yh_d == false && zs_at == false)

{

zs_left = (zs_left == false?true:false);

}

else if(line[i] == ')' &&line[i+1] == ')' && yh_s == false && yh_d == false && zs_at == false)

{

if(zs_left = true)

{

zs_left = false;

}

else

{

//printf("error:%d,%d\n",p_line,l_line);

}

}

else if(line[i] == ';' && yh_s == false && yh_d == false && zs_left == false && zs_at == false)

{

end_line = true;

l_line ++;

}

/*if(end_line)

{

if(yh_d == true || yh_s == true)

printf("Unter sting in line %d",p_line);

end_line = false;

yh_d = false;

yh_s = false;

}*/

}

end_line = true;

if(end_line)

{

if(yh_d == true || yh_s == true)

printf("Unter sting in line %d\n",p_line);

end_line = false;

yh_d = false;

yh_s = false;

}

if(end_pro == 2)

break;

}

}

/*基本功能已經實現,可以復制了然後運行,妳可以自己再優化下代碼*/

  • 上一篇:為什麽有些人喜歡單休?
  • 下一篇:軟件測試職業發展計劃表分析
  • copyright 2024編程學習大全網