讨论 / 好吧....能不能说清楚一些输入
128位pc机 2011-08-08 02:11:00
点我顶贴 收藏 删除
输入数据最后一个...

for (i=1;i<=2;i++)

{

scanf("%c",&ch);

if (ch=='\n') return;

d*=10;

d+=(ch-48);

}

这样读会错

但是

while(1)

{

scanf("%c",&ch);

if (ch=='\n') return;

d*=10;

d+=(ch-48);

}

这样就不会....

能否公布一下输入数据....我崩溃啊

#1 128位pc机@2011-08-06 11:32:00
回复 删除
回复 楼主128位pc机 的帖子

Orz

....必须要这样读入才不会出错..求解

void init()

{

char ch;

int i;

for (i=1;i<=4;i++)

{

scanf("%c",&ch);

stdy*=10;

stdy+=(ch-48);

}

scanf("%c",&ch);

for (i=1;i<=2;i++)

{

scanf("%c",&ch);

stdm*=10;

stdm+=(ch-48);

}

scanf("%c",&ch);

for (i=1;i<=2;i++)

{

scanf("%c",&ch);

stdd*=10;

stdd+=(ch-48) ;

}

scanf("%c",&ch);

while (1)

{

scanf("%c",&ch);

if (ch=='\n') break;

stdw*=10;

stdw+=(ch-48);

}

while (1)

{

scanf("%c",&ch);

if (ch=='\n') break;

w*=10;

w+=(ch-48);

}

while(1)

{

scanf("%c",&ch);

if (ch=='\n') break;

d*=10;

d+=(ch-48);

}

stdw%=7;

w%=7;

}

数据是不是前后都会多几个0啊!....

#2 nsd@2011-08-08 01:52:00
回复 删除
pascal 瑙f硶

var

n,y,r,r2,x2,xq:integer;

rq:string;

function day(n,y:integer):integer;

begin

case y of

1,3,5,7,8,10,12: day:=31;

4,6,9,11: day:=30;

2: if (n mod 4=0)and(n mod 100<>0) or (n mod 400=0) then

day:=29

else day:=-28;

end;

end;

function sum(n,y:integer):integer;

var

i:integer;

begin

sum:=0;

for i:=1 to y-1 do

sum:=sum+day(n,i);

end;

procedure print(n,y:integer);

var

yy,rr:string;

begin

str(y,yy); if length(yy)<2 then insert('0',yy,1);

str(r2,rr); if length(rr)<2 then insert('0',rr,1);

write(n,'-',yy,'-',rr);

end;

procedure cs(n,y,r,x1:integer);

var

i:integer;

begin

x1:=8-((sum(n,y)+r+7-x1)mod 7);

if ((sum(n,y)+r2+x1-1)mod 7=x2)and(r>r2) then

begin

print(n,y);

exit;

end

else

for i:=y-1 downto 1 do

if (sum(n,i)+r2+x1-1)mod 7=x2 then

begin

print(n,i);

exit;

end;

cs(n-1,12,31,x1-1);

end;

begin

readln(rq);

readln(xq);

readln(x2);

readln(r2);

x2:=x2 mod 7;

val(copy(rq,1,4),n);

val(copy(rq,6,2),y);

val(copy(rq,9,2),r);

cs(n,y,r,xq);

end.

#3 897357142@2011-08-08 02:11:00
回复 删除
C/C++比较方便的读入

其实楼主可以这样读入的,C/C++是允许的。

scanf("%ld-%ld-%ld",&y,&m,&d);

查看更多回复
提交回复