作业3 应用分支与循环结构解决问题。

1、

#include<stdio.h>
int main(void)
{
    int x,y;
    printf("Enter x:");
    scanf("%d",&x);
    if(x<0)
    {
        y=-1;
    }
    else if(x==0)
    {
        y=0;
    }
    else
    {
        y=1;    
    }
   printf("y=%d\n",y); 
return 0;
}

 

2、

#include<stdio.h>
int main (void)
{
    int count,i,n;
    double grade,total;

    printf("Enter n:");
    scanf("%d",&n);
    total=0;
    count=0;
    for(i=1;i<=n;i++){
        printf("Enter grade%d:",i);
        scanf("%lf",&grade);
        total=total+grade;
        if(grade>=60)
        {
            count++;
        }
    }
    printf("Grade average=%.2f\n",total/n);
    printf("Number of pass=%d\n",count);
    
    return 0;
}

最后两项分行竟然是在上一项的输出末尾加\n,真是神奇的设定

 

3、

#include<stdio.h>
int main(void)
{
    int blank,digit,other,letter;
    char ch;
    int i;
    blank=digit=other=letter=0;
    printf("Enter :");
    for(i=1;i<=15;i++)
    {
        ch=getchar( );
        if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
            letter++;
        else if(ch>='0'&&ch<='9')
            digit++;
        else if(ch>=' '&&ch<=' ')
            blank++;
        else
            other++;
    }

printf("blank=%d,digit=%d,letter=%d,other=%d\n",blank,digit,letter,other);

return 0;
}

肿么控制输入字符数啊?这个程序运行以后貌似可以无限输入字符,但是结果只计算了前15个的

4、

#include<stdio.h>
int main(void)
{
    int i,n,year;
    printf("Enter n:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        printf("Enter year:");
        scanf("%d",&year);
        if((year%4==0&&year%100!=0)||(year%400==0))
        {
            printf("这是闰年\n");
        }
        else{
            printf("这不是闰年\n");
        }
    }


        return 0;

}

输入-1后退出程序这一步骤为什么不能用
if(year==-1)
break;
于是我默默地省略这一程序了QAQ

5、

#include<stdio.h>
int main(void)
{
    char op;
    printf("输入五级制成绩:");
    scanf("%c",&op);
    switch(op){
        case'A':printf("grade=90-100");
            break;
        case'B':printf("grade=80-89");
            break;
        case'C':printf("grade=70-79");
            break;
        case'D':printf("grade=60-69");
            break;
        case'E':printf("grade=0-59");
            break;
    }
    return 0;
}

突然发现\n在这里好像没什么用  - - !

6、

#include<stdio.h>
int main(void)
{
    int i,x;
    double price;
    
    for(i=1;i<=5;i++)
    {
        printf("[1]apples\n");
        printf("[2]pears\n");
        printf("[3]oranges\n");
        printf("[4]grapes\n");
        printf("[0]exit\n");
        printf("输入编号:");
        scanf("%d",&x);
        if(x==0)
            break;
        switch(x)
        {
            case 1:price=3.00;
                break;
            case 2:price=2.50;
                break;
            case 3:price=4.10;
                break;
            case 4:price=10.20;
                break;
            default:price=0.00;
                break;
        }
        printf("price=%.2f",price);
    }
    return 0;
}

为什么不能直接只输出价格不带后面的菜单?

posted @ 2013-10-19 23:48  。墨墨恢非受  阅读(224)  评论(0编辑  收藏  举报