IOS开发之路-C 学习笔记7.15

今天听的还是挺轻松的,但是还是学到了以前不知道的东西.

比如:

++i 先自增  再使用

i++ 先使用 再自增

高精度忘低精度转 不四舍五入直接舍掉

例: printf("%d",(int)3.14);

还有幻影回车符.

例用scanf输入时:

void getChar()
{
    int a,b,c,d;
    scanf("%d%d%d%d",&a,&b,&c,&d);
    printf("%d %d %d %d\n",a,b,c,d);
    char c1,c2,c3;
    scanf("%c %c %c",&c1,&c2,&c3);
    printf("%c %c %c",c1,c2,c3);
}

其中输入完4个数字之后(如输入1 2 3 4)之后回车,输入3个英文如(a b c)

之后回车输出 会发现 结果为

1 2 3 4

b c 

因为scanf接受完4个数之后,默认会把回车符也加进去作为c1的值了.所以就产生了结果那样.

那如何解决这个问题呢.其实很简单

只需要在输入完数字之后加上getchar(); 就ok了;

getchar();是C的从键盘接收一个字符的函数,这样就把回车符被getchar()接受了.所以输出就没有问题了.

今天没写什么东西.哎 玩的时间浪费了.


1.使用数组,编写一个任意进制转换为十进制的转换工具

void convert_10()
{
    long int number = 0;
    int con_ = 0;
    int num[16];
    int ram = 0 ;
    int len  = 1 ;
    int sum = 0 ;
    printf("请选择要转换的类型:\n");
    printf("(1)2进制转10进制\t");
    printf("(2)8进制转10进制\t\n");
    printf("请输入编号进行选择:");
    scanf("%d",&con_);
    if(con_ == 1)
    {
        printf("请输入要转换的2进制数:");
        scanf("%ld",&number);
        long int temp = number;
           while(temp>=10)
            {
                len++;
                temp = temp/10;
            }
        for(int i = 0 ; i<len;i++)
        {
            ram = number%10;
            number = number/10;
            num[i] = ram*pow(2, i);
            
            sum += num[i];
        }
        printf("转换为10进制后为:%d\n",sum);
    }
    else if(con_ == 2)
    {
        printf("请输入要转换的8进制数:");
        scanf("%ld",&number);
        long int temp = number;
        while(temp>=10)
        {
            len++;
            temp = temp/10;
        }
        for(int i = 0 ; i<len;i++)
        {
            ram = number%10;
            number = number/10;
            num[i] = ram*pow(8, i);
            sum += num[i];
        }
        printf("转换为10进制后为:%d\n",sum);
    }
    else
    {
        printf("您的输入有误!");
    }
}

2.计算粉刷某图形所需涂料用量。

某公司想要粉刷一个户外广告,这个广告本身很简单,是一个同心圆,里面的小圆的半径是外面的大圆半径的四分之一。分别用两种不同的颜色来粉刷,外面使用黄色,里面使用紫色。涂料1夸脱(1夸脱=1.1365升)可以粉刷250平方英尺(1英尺=0.3048米),但是为了效果显著特要求粉刷两遍。要求编写一个C程序,然后输入外面同心圆的直径(单位:米),然后计算出黄色和紫色的涂料分别需要多少升?

  • //
    //  main.c
    //  work15
    //
    //  Created by X's on 13-7-15.
    //  Copyright (c) 2013年 X‘s. All rights reserved.
    //
    
    #include <stdio.h>
    #include <math.h>
    #define pi 3.14
    #define tk 1.1365
    #define yc 0.3048
    void work_1()
    {
        float r = 0;
        float max_area = 0;
        float min_area = 0;
        float dope_min = 0;
        float dope_max = 0;
        printf("请输入外面同心圆的直径(米):");
        scanf("%f",&r);
        float lettle_r = (r/2)/4;
        getchar();
        max_area = pi * pow((r/2), 2);
        min_area = pi * pow(lettle_r,2);
        //250平方英尺  1英尺 = 0.3048
        float area_1 = (sqrt(250)*yc)*(sqrt(250)*yc);
        dope_min = (tk/(area_1/min_area)*2);
        dope_max = (tk/(area_1/max_area)*2);
        printf("大圆面积:%.2f平方米\n",max_area);
        printf("小圆面积:%.2f平方米\n",min_area);
        printf("一夸脱可以涂:%.2f平方米\n",area_1);
        printf("大圆需要: %.2f升\n",(dope_max-dope_min));
        printf("小圆需要: %.2f升\n",dope_min);
    }
    int main(int argc, const char * argv[])
    {
        work_1();
        return 0;
    }
    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值