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

来源:互联网 发布:科学计算可视化算法 编辑:程序博客网 时间:2024/05/21 14:05

星期天          阴



今天起的很晚,11点到机房便一直没出来.

先是玩了阵子网页游戏.简直让我欲罢不能.还好最后还是拜托出来了.

记录下今天写的.

首先是根据用户输入的一串字符串,来统计小写英文,大写英文,数字的个数,并且进行从下到大的顺序输出排序。并且排除相同的字符.

由于我英文太烂,变量名起的太低级...

上码:

////  main.c//  getChars////  Created by X's on 13-7-14.//  Copyright (c) 2013年 X‘s. All rights reserved.//#include <stdio.h>#include <string.h>    int c_count = 0 ;    int i_count = 0 ;    int C_count = 0 ;    int o_count = 0 ;    char str[100];    int len  = 0;    char i_str[100];    char c_str[100];    char C_str[100];void getStr(){    printf("请随便输入一段字符串:");    scanf("%s",str);    len = (int)strlen(str);}void get_cstr(char c[len]){    char min = 0;    printf("小写排序后:");    for(int i=0;i<len-1;i++)    {        min = i;        for(int j=i+1;j<len;j++)        {            char temp =0;            if(c_str[min]>c_str[j])            {                min = j;            }            if(c_str[min]==c_str[j])            {                c_str[j]='\0';            }            temp = c_str[i];            c_str[i] = c_str[min];            c_str[min] =temp;        }    }    for(int i=0 ; i<len;i++)    {        if(c_str[i]>='a' && c_str[i]<='z')        {            printf("%c",c_str[i]);        }        if(i==len-1)        printf("\n");    }}void get_Cstr(char c[len]){    char min = 0;    printf("大写排序后:");    for(int i=0;i<len-1;i++)    {        min = i;        for(int j=i+1;j<len;j++)        {            char temp =0;            if(C_str[min]>C_str[j])            {                min = j;            }            if(C_str[min]==C_str[j])            {                C_str[j]='\0';            }            temp = C_str[i];            C_str[i] = C_str[min];            C_str[min] =temp;        }    }    for(int i=0 ; i<len;i++)    {        if(C_str[i]>='A' && C_str[i]<='Z')        {        printf("%c",C_str[i]);        }        if(i==len-1)            printf("\n");    }}void get_istr(char c[len]){    int min = 0;    printf("数字排序后:");    for(int i=0;i<len-1;i++)    {        min = i;        for(int j=i+1;j<len;j++)        {            char temp =0;            if(i_str[min]>i_str[j])            {                min = j;            }            if(i_str[min]==i_str[j])            {                i_str[j]='\0';            }            temp = i_str[i];            i_str[i] = i_str[min];            i_str[min] =temp;        }    }    for(int i=0 ; i<len;i++)    {        if(i_str[i]>='0' && i_str[i]<='9')        {            printf("%c",i_str[i]);        }        if(i==len-1)            printf("\n");           }}void getChars(){    //gets(str);    getStr();    if(len<100)    {        for(int i=0 ; i<len ; i++)        {            if(str[i]>='a' && str[i]<='z')            {                c_count++;                c_str[i] = str[i];            }            else if(str[i]>='A' && str[i]<= 'Z')            {                C_count++;                C_str[i] = str[i];            }            else if(str[i]>='0' && str[i]<='9')            {                i_count++;                i_str[i] = str[i];            }            else            {                o_count++;            }        }        get_cstr(c_str);        get_Cstr(C_str);        get_istr(i_str);        printf("小写字母:%d \t 大写字母:%d \t 数字:%d \t 其他字符:%d",c_count,C_count,i_count,o_count);    }    else    {        getChars();    }}int main(int argc, const char * argv[]){    getChars();}

2.从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入

0123.456,返回值为整数有效位数为3)

void num_Count(){    double d_num = 0.0 ;    int    n_num = 0 ;    int    count = 1 ;    printf("请输入一个数:");    scanf("%lf",&d_num);    n_num = (int)d_num;    while (n_num>=10)    {        count++;        n_num = n_num/10;    }    printf("有效整数为:%d",count);}

3.10进制转化为其他进制


void convert(){    int sets = 0 ;    int num_10 = 0;    int num[20];    int count = 0 ;    int ram = 0 ;//余数    printf("10进制转换为其他进制工具\n");    printf("请输入要转换的10进制数:");    scanf("%d",&num_10);        printf("请选择你要转换的进制:\n1.2进制 \t2.8进制\n");    scanf("%d",&sets);    if(sets==1)    {        while (num_10!=0)        {            ram = num_10%2;            num_10 = num_10/2;            num[count] = ram;            count++;        }        printf("转换为2进制后:");        if(count%4!=0)        {            for(int i=count;i<count+(4%count);i++)            {                num[i]=0;            }            for(int i=(count+(4%count)-1);i>=0;i--)            {                printf("%d",num[i]);                if(i%4==0)                    printf(" ");            }        }        else        {            for(int i=(count+(4%count)-1);i>=0;i--)            {                printf("%d",num[i]);                if(i%4==0)                    printf(" ");            }        }    }    else if(sets == 2)    {        while (num_10!=0)        {            ram = num_10%8;            num_10 = num_10/8;            num[count] = ram;            count++;        }        printf("转换为8进制后:");        if(count%4!=0)        {            for(int i=count;i<count+(4%count);i++)            {                num[i]=0;            }            for(int i=(count+(4%count)-1);i>=0;i--)            {                printf("%d",num[i]);                if(i%4==0)                    printf(" ");            }        }        else        {            for(int i=(count+(4%count)-1);i>=0;i--)            {                printf("%d",num[i]);                if(i%4==0)                    printf(" ");            }        }    }    else    {        printf("您输入的有误!");    }}