啊哈磊_编程从这里起步

标题: 习题求确认 [打印本页]

作者: sycamore1990    时间: 2013-2-17 20:00
标题: 习题求确认
本帖最后由 sycamore1990 于 2013-2-17 22:30 编辑

160页的习题:
1.求1~100之间所有偶数的和。
2.输入一个整数n(1<=n<=9),求n的阶乘。
167页的习题:
3.请尝试编写一个2分钟的倒计时。形如:2:00 1:59 1:58…… 1:00 0:59…… 0:02 0:01 0:00

我做的答案是这样:

1.****************************
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,i;
    a=0;
    i=1;
    while(i<=100)
    {
        if(i%2==0)
        {
            a=a+i;
        }
        i=i+1;
    }
    printf("%d",a);
    system("pause");
    return 0;
}


2.****************************
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,i,n;
    a=1;
    i=1;
    scanf("%d",&n);
    while(i<=n)
    {
        a=a*i;
        i=i+1;
    }
    printf("%d",a);
    system("pause");
    return 0;
}

3.******************************
#include <stdio.h>
int main()
{
    system("cls");
    printf("2:00");
    sleep(1000);
    system("cls");
    int a,b;
    a=1;
    b=59;
    while(b>=1)
    {
        system("cls");
        printf("%d:%.2d",a,b);
        b--;
        sleep(1000);
    }
    system("cls");
    printf("1:00");
    sleep(1000);
    system("cls");
    int c,d;
    c=0;
    d=59;
    while(d>=0)
    {
        system("cls");
        printf("%d:%.2d",c,d);
        d--;
        sleep(1000);
    }
   
    sleep(5000);
    return 0;
}



这样对不对呢?自己试是可以。想确认一下,望大家指正。谢谢啦。



作者: rosynirvana    时间: 2013-2-17 20:00
第三题,这么写不够简介,其实没必要分段的,可以这么写

#include <stdio.h>
#include <stdlib.h>
int main()
{
        int time, min, sec;
    for(time = 120; time >= 0; --time){
        system("cls");
        min = time / 60;
        sec = time % 60;
        printf("%d:%.2d", min, sec);
        sleep(1000);
    }
   
    system("pause");
        return 0;
}
作者: sycamore1990    时间: 2013-2-18 11:30
啊嘞,肿么木人鸟我。
作者: 纨绔☆子弟    时间: 2013-2-18 12:59
第三个错了
作者: sycamore1990    时间: 2013-2-18 13:01
纨绔☆子弟 发表于 2013-2-18 12:59
第三个错了

麻烦纠正下。谢谢啦。。
作者: rosynirvana    时间: 2013-2-18 19:58
本帖最后由 rosynirvana 于 2013-2-18 20:16 编辑

三个都没错,但是又都有点小问题
第一题

printf("%d",a);  //这里应该在%d后面加一个\n

而且这么写逻辑会更明晰一点
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i, sum;
    sum = 0;
    for( i = 2; i <= 100; i+=2)
        sum += i;
    printf("%d\n",sum);
    system("pause");
    return 0;
}
第二题的问题在于,你没有检验n是否在1和9之间,所以应该这么改一下
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int result, a, i;
    result = 1;

    do{
        scanf("%d",&a);
      }while(a < 1 || a > 9);

    for(i = 1; i <= a; ++i)
      result *= i;

    printf("%d\n", result);

    system("pause");
    return 0;  
}
   



作者: sycamore1990    时间: 2013-2-18 22:04
rosynirvana 发表于 2013-2-18 19:58
三个都没错,但是又都有点小问题
第一题

thax....
作者: sycamore1990    时间: 2013-2-18 22:06
习题。。。。。。。
作者: 纨绔☆子弟    时间: 2013-3-8 20:08
sycamore1990 发表于 2013-2-18 13:01
麻烦纠正下。谢谢啦。。

#include <stdio.h>
int main()
{int a=0,b=0,c=0;//a秒b分c时
while(1>0)
{
system("cls");
printf("%d:%d:%d",a,b,c);
a=a+1;
if(a=60)
{
b=b+1;
a=0;
if(b=60)
{
c=c+1;
b=0;}
}
sleep(1000);
}
sleep(5000);
return 0;
}






欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2