# include "stdio.h" float addodd(int n) { float osum=0 ; int i ; for(i=2;i<=n;i+=2) osum+=1/(float)i ; return(osum); }
float addEven(int n) { float qsum=0 ; int i ; for(i=1;i<=n;i+=2) qsum+=1/(float)i ; return(qsum); }
main() { int n ; char d ; do { printf("intput:"); scanf("%d",&n); if(!(n>=0)) { printf("error,please continue\n"); getch(); exit(0); } if(n%2==0) printf("%7.3f\n",addodd(n)); else printf("%7.3f\n",addEven(n)); printf("y/n\n"); scanf(" %c",&d); /*就是这里 %前如果不空格 就不能循环 为什么 望高人指点*/ } while(d=='y'||d=='Y'); }
大家最好是运行一下,就能体会到空格与不空格的不同了。
----------------解决方案--------------------------------------------------------
我编译有空格和没空格都成功.
wintc xp系统.
----------------解决方案--------------------------------------------------------
真的?
难道是我编译器的问题?
----------------解决方案--------------------------------------------------------
scanf(" %c",&d);和函数scanf()的输入要求有关!!你看一下函数说明就明白了!!!
----------------解决方案--------------------------------------------------------