151_14:编写一个程序读入一行输入,然后反向打印该行。
1. # include <stdio.h>
2. int main (void)
3. {
4. char input [255];
5. int i=0;
6.
7. printf("please input one line of words./n");
8. scanf("%c",input);
9. while (input[i]!='/n')
10. {
11. i++;
12. scanf("%c",&input[i]);
13. }
14.
15. for (i;i>=0;i--)
16. {
17. printf("%c",input[i]);
18. }
19.
20. return 0;
21. }
1)程序的第8行中scanf()参数列表中的地址为input,它为该数组的首地址。之后数组元素的地址就必须加上&,如第12行。
2)输入与输出之间空了一行的原因:当你输入ENTER键时,计数器i已经加1,并且回车键也已被转换成换行符存入input[ i ],之后通过判断条件退出循环。所以当打印的时候,就是从换行符开始打印的,自然就会空了一行。
151_15
//运行结果为:27年后,Deirdre有373.35,而Daphne有370,即投资额已超过
# include <stdio.h>
int main (void)
{
int year=1;
double money1,money2;
money1=100+100*0.1;
money2=100*(1+0.05); //第1年两个人的总投资额
while (money1>money2)
{
money1+=100*0.1; //利息等于原始投资的10%
money2*=1.05; //利息是当前结余的5%
year++;
}
printf("After %d years,Deirdre's money is more than Daphne's./n",year);
printf("At that time,Deirdre's money is % .2f ,Daphne's money is % .2f ./n",money2,money1);
return 0;
}
151_16
//运行结果为:需要21年的时间取完存款
# include <stdio.h>
const float rate=0.08; //每年的利率
const int getout_money=10; //每年最后一天取出的钱
int main (void)
{
int i=1;
float money;
money=100*(1+rate)-getout_money; //第1年剩的钱
while (money>10)
{
money=money*(1+rate)-getout_money;
i++;
}
printf("After %d years,Mr. Chuckie's money is empty./n",i+1);
//还需加上一年将不超过10万美元的钱取出
return 0;
}
13题的代码现在出现很多问题,待我更正后再上传。