C语言基础C02数组

1.编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排序,然后将这两个数组合并成一个升序数组
 
    int c[5] ={0}, d[5] = {0}, e[10] = {0};
 
    printf("请输入一个包含5个元素的数组:");
 
    for (int i =0; i < 5; i++) {
 
            scanf("%d",&c[i]);
 
    }
 
    printf("请再输入一个包含5个元素的数组:");
 
    for (int j =0; j < 5; j++) {
 
            scanf("%d", &d[j]);
 
    }
 
   
 
    for (int i =0; i < 4; i++) {
 
    for (int j =0; j < 4 - i; j++) {
 
            int temp = 0;
 
            if (c[j] > c[j + 1]) {
 
                    temp = c[j];
 
                    c[j] = c[j + 1];
 
                    c[j + 1] = temp;
 
            }
 
    }
 
    }
 
    for (int i =0; i < 5; i++) {
 
            printf("%d ",c[i]);
 
    }
 
    printf("\n");
 
    for (int l =0; l < 4; l++) {
 
    for (int m =0; m < 4 - l; m++) {
 
            int temp1 = 0;
 
            if (d[m] > d[m + 1]) {
 
                    temp1 = d[m];
 
                    d[m] = d[m + 1];
 
                    d[m + 1] = temp1;
 
            }
 
    }
 
    }
 
    for (int l =0; l < 5; l++) {
 
            printf("%d ", d[l]);
 
    }
 
    printf("\n");
 
    for (int i =0; i < 10; i++) {
 
            if (i < 5) {
 
                    e[i] = c[i];
 
            } else {
 
                    e[i] = d[i - 5];
 
            }
 
    }
 
    for (int i =0; i < 10; i++) {
 
            printf("%d ", e[i]);
 
    }
 
    printf("\n");
 
    for (int i =0; i < 9; i++) {
 
            for (int j = 0; j < 10 - 1 - i; j++) {
 
                    int temp3 = 0;
 
                    if (e[j] > e[j + 1]) {
 
                            temp3 = e[j + 1];
 
                            e[j + 1] = e[j];
 
                            e[j] = temp3;
 
                    }
 
            }
 
    }
 
    for (int i =0; i < 10; i++) {
 
            printf("%d ", e[i]);
 
    }
 
    printf("\n");
2.编写整型值数组排序程序(冒泡排序、选择排序、快速排序-­-­升序) int a[] ={3,-­9,32,77,63,-­24,14,0,21,45};
选择排序
 
    int a[] ={3, -9, 32, 77, 63, -24, 14, 0, 21, 45};
 
    for (int i =0; i < 9; i++) {
 
            int min = i;
 
            for (int j = i + 1; j < 10; j++) {
 
                    if (a[min] > a[j]) {
 
                            min = j;
 
                    }
 
            }
 
            if (min != i) {
 
                    int temp = a[i];
 
                    a[i] = a[min];
 
                    a[min] = temp;
 
            }
 
            printf("%d ", a[i]);
 
    }
 
    printf("\n");
3. 输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)
 
    //辗转相除法
 
    int num1 =1, num2 = 1;
 
    int gcd = 1,a = 1;
 
    printf("请输入两个数:");
 
    scanf("%d%d", &num1, &num2);
 
   
 
    while (1){
 
            a = num1 % num2;
 
            if (a == 0) {
 
                    gcd = num2;
 
                    break;
 
            }
 
            num1 = num2;
 
            num2 = a;
 
    }
 
    printf("最大公约数是:%d\n最小公倍数是:%d\n", gcd, num1 * num2 / gcd);
 
   
 
    //普通方法
 
    int num1 =0, num2 =0;
 
    printf("请输入两个数:");
 
    scanf("%d%d", &num1, &num2);
 
    for (int gcd= num1 < num2 ? num1 : num2; gcd >= 1; gcd--) {
 
            if (num1 % gcd == 0 && num2 % gcd == 0) {
 
                    printf("最大公约数是:%d\n最小公倍数是:%d\n", gcd, (num1 * num2) / gcd );
 
                    break;
 
            }
 
    }
4.输入三个数,用两种方法打印出中间值(即第二大值)提示:第一种,先求最大最小;第二种,只使用条件运算符
第二种
 
    float h1 =0, h2 = 0, h3 = 0;
 
    float max =0, min = 0, sum = 0, mid = 0;
 
    printf("请输入三个数:");
 
    scanf("%f%f%f", &h1, &h2, &h3);
 
    max = h1>= h2 ? h1 : h2;
 
    max = max>= h3 ? max : h3;
 
    min = h1<= h2 ? h1 : h2;
 
    min = min<= h3 ? min : h3;
 
    sum = h1 +h2 + h3;
 
    mid = sum -max - min;
 
    printf("mid= %.2f\n", mid);
 
第一种 
 
    float h1 =0, h2 = 0, h3 = 0;
 
    printf("请输入三个数:");
 
    scanf("%f%f%f", &h1, &h2, &h3);
 
    if ((h1 >h2 && h1 < h3) || (h1 < h2 && h1 > h3)){
 
            printf("%.2f为中间数\n", h1);
 
    } else if((h2 > h1 && h2 < h3) || (h2 < h1 && h2> h3 )){
 
            printf("%.2f为中间数\n", h2);
 
    } else{
 
            printf("%.2f为中间数\n", h3);
 
    }
5.编制一个完成两个数四则运算程序。如:用户输入34+56则输出结果为90.00,要求运算结果保留2位有效小数,用户输入时将2个运算数以及运算符都输入,根据运算符求结果
//方法1
 
    float e1 =0, e2 = 0;
 
    char f1 ='+', f2 = '-', f3 = '*', f4 = '%';
 
    printf("请输入一个式子:");
 
    scanf("%f%c%f", &e1, &f4, &e2);
 
    if (f4 ==f1) {
 
            printf("运算结果为:%f\n", e1 + e2);
 
    } else if(f4 == f2){
 
            printf("运算结果为:%f\n", e1 - e2);
 
    } else if(f4 == f3){
 
            printf("运算结果为:%f\n", e1 * e2);
 
    } else{
 
            printf("运算结果为:%f\n", e1 / e2);
 
    }
//方法2
 
    float e1 =0, e2 = 0, result = 0;
 
    charg;
 
    printf("请输入式子:");
 
    scanf("%f%c&f", &e1, &g, &e2);
 
    switch (g){
 
            case '+':
 
            result = e1 + e2;
 
                    break;
 
            case '-':
 
                    result = e1 - e2;
 
                    break;
 
            case '*':
 
                    result = e1 * e2;
 
                    break;
 
            case '/':
 
                    result = e1 / e2;
 
                    break;
 
            default:
 
                    break;
 
    }
 
      printf("运算结果为:%.2f\n", e1 + e2);
6.输入生日,输出年龄(周岁)和星座
 
    int c1 = 0,c2 = 0, c3 = 0;
 
    int age =0;
 
    printf("输入你的生日:");
 
    scanf("%d.%d.%d", &c1, &c2, &c3);
 
    age = 2015 -c1;
 
    printf("%d周岁\n", age);
 
    if ((c2 == 3&& c3 >=21) || (c2 == 4 && c3 <= 19) ){
 
            printf("白羊座\n");
 
    } else if((c2 == 4 && c3 >= 20) || (c2 == 5 && c3 <=20)) {
 
            printf("金牛座\n");
 
    } else if((c2 == 5 && c3 >= 21) || (c2 == 6 && c3 <=21)) {
 
            printf("双子座\n");
 
    } else if((c2 == 6 && c3 >= 22) || (c2 == 7 && c3 <=22)) {
 
            printf("巨蟹座\n");
 
    } else if((c2 == 7 && c3 >= 23) || (c2 == 8 && c3 <=22)) {
 
            printf("狮子座\n");
 
    } else if((c2 == 8 && c3 >= 23) || (c2 == 9 && c3 <=22)) {
 
            printf("处女座\n");
 
    } else if((c2 == 9 && c3 >= 23) || (c2 == 10 && c3 <=23)) {
 
            printf("天秤座\n");
 
    } else if((c2 == 10 && c3 >= 24) || (c2 == 11 && c3 <=22)) {
 
            printf("天蝎座\n");
 
    } else if((c2 == 11 && c3 >= 23) || (c2 == 12 && c3 <=21)) {
 
            printf("射手座\n");
 
    } else if((c2 == 12 && c3 >= 22) || (c2 == 1 && c3 <=19)) {
 
            printf("摩羯座\n");
 
    } else if((c2 == 1 && c3 >= 20) || (c2 == 2 && c3 <=18)) {
 
            printf("水瓶座\n");
 
    } else{
 
            printf("双鱼座\n");
7.查找ASCII码表,分别用%d输出字符,用%c输出整数 
 
 
    int e =0;
 
    char g ='a';
 
    printf("请输入一个字符:\n");
 
    scanf("%c",&g);
 
    printf("转化为整数:%d\n", g);
 
   
 
    printf("请输入一个整数:");
 
    scanf("%d",&e);
 
    printf("转换为字符:%c\n",e);
// 

 
    int e =66;
 
    char g ='a';
 
    printf("转化为整数:%d\n", g);
 
    printf("转化为字符:%c\n", e);
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值