C语言第四课练习

来源:互联网 发布:seo在线培训机构 编辑:程序博客网 时间:2024/06/05 13:26

#import <Foundation/Foundation.h>

#define SIZE 10

int main(int argc,const char * argv[]) {

    

//    int a[SIZE] = {0},i= 0;

//   for(i = 0; i < SIZE; i++){

//           a[i] = i+10;

//           printf("a[%d] = %d\n", i, a[i]);

//       }

   

//

//    // 2.(*)将第一题中的数组a反向输出

//    for(i = 0; i < SIZE; i++){

//        printf("a[%d] = %d\n", SIZE - 1 -i, a[SIZE - 1 -i]);

//    }

//    

//    

//    // 3 . (*)对第一题中的数组进行求和操作,打印计算结果。

//    int sum = 0;

//    for (int i = 0; i < SIZE; i++) {

//        sum += a[i];

//    }

//    

//    printf("%d\n", sum);

//    

//    

    // 4.(**)计算第一题数组连减,打印计算结果。

    

//    int sub = a[0];

//    for (int i = 1; i < SIZE; i++) {

//        sub -= a[i];

//    }

//    printf("%d\n",sub);

    

    

    // 5.(**)随机产生2010~50的正整数存放到数组中,并求数组中的元素最大值、最小值、平均值及各元素之和。

    

    

//    int array[20] = {0};

//    int max = 0, min = 0, avg = 0, sum = 0;

//    for (int i = 0; i < 20; i++) {

//        array[i] = arc4random() % (50 - 10 + 1) + 10;

//    }

//    min = array[0];

//    for (int i = 0; i < 20; i++) {

//        if (array[i] > max) {

//            max = array[i];

//        }

//        if (array[i] < min) {

//            min = array[i];

//        }

//        sum += array[i];

//    }

//    avg = sum / 20;

//    printf("max = %d  min = %d  avg = %d  sum = %d", max, min, avg, sum);

    

    

    // 6.编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排序,然后将这两个数组合并成一个升序数组。

    

//    int array1[] = {2,5,3,9,6};

//    int array2[] = {15,1,8,12,19};

//    int array3[] = {0};

//    //array1[]升序排序

//    for (int i = 0; i < 4; i++) {

//        for (int j = 0; j < 4 - i; j++) {

//            if (array1[j] > array1[j + 1]) {

//                int temp = array1[j];

//                array1[j] = array1[j + 1];

//                array1[j + 1] = temp;

//            }

//        }

//    }

//   // array2[]升序排序

//    for (int i = 0; i < 4; i++) {

//        for (int j = 0; j < 4 - i; j++) {

//            if (array2[j] > array2[j + 1]) {

//                int temp = array2[j];

//                array2[j] = array2[j + 1];

//                array2[j + 1] = temp;

//            }

//        }

//    }

//   // 合并数组

//    for (int i = 0; i < 5; i++) {

//        array3[i] = array1[i];

//    }

//    for (int i = 5; i < 10; i++) {

//        array3[i] = array2[i - 5];

//        

//    }

//    for (int i = 0; i < 9; i++) {

//        for (int j = 0; j < 9 - i; j++) {

//            if (array3[j] > array3[j + 1]) {

//                int temp = array3[j];

//                array3[j] = array3[j + 1];

//                array3[j + 1] = temp;

//            }

//        }

//    }

//    for (int i = 0; i < 10; i++) {

//        printf("%d  ", array3[i]);

//    }

    //7.(***)给定某年某月某日,输出其为这一年的第几天。

    

    

//    printf("输入日期:\n");

//    int day = 0, month = 0, year = 0;

//    scanf("%d,%d,%d",&year, &month, &day);

//    switch (month) {

//        case 1:

//            printf("为这一年的第 %d",day);

//            break;

//        case 2:

//            printf("为这一年的第 %d",day + 31);

//            break;

//        case 3:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                 printf("为这一年的第 %d",day + 60);

//            }else{

//                printf("为这一年的第 %d",day + 59);

//            }

//            break;

//        case 4:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 91);

//            }else{

//                printf("为这一年的第 %d",day + 90);

//            }

//            break;

//        case 5:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 121);

//            }else{

//                printf("为这一年的第 %d",day + 120);

//            }

//            break;

//        case 6:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 152);

//            }else{

//                printf("为这一年的第 %d",day + 150);

//            }

//            break;

//        case 7:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 182);

//            }else{

//                printf("为这一年的第 %d",day + 181);

//            }

//            break;

//        case 8:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 213);

//            }else{

//                printf("为这一年的第 %d",day + 212);

//            }

//            break;

//        case 9:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 244);

//            }else{

//                printf("为这一年的第 %d",day + 243);

//            }

//            break;

//        case 10:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 274);

//            }else{

//                printf("为这一年的第 %d",day + 273);

//            }

//            break;

//        case 11:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 305);

//            }else{

//                printf("为这一年的第 %d",day + 304);

//            }

//            break;

//        case 12:

//            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

//                printf("为这一年的第 %d",day + 335);

//            }else{

//                printf("为这一年的第 %d",day + 334);

//            }

//            break;

//            

//        default:

//            break;

//    }

    

    // 8.(**)编写整型值数组排序程序(冒泡排序--升序)

//    int a[] = {3, -9, 32, 77, 63, -24, 14, 0, 21, 45};

//    for (int i = 0; i < 9 ; i++) {

//        for (int j = 0; j < 9 - i; j++) {

//            if (a[j] > a[j + 1]) {

//                int temp = a[j];

//                a[j] = a[j + 1];

//                a[j + 1] = temp;

//            }

//            

//        }

//    }

//    

//    for (int i = 0; i < 10; i++) {

//        printf("%d  ", a[i]);

//    }

//    

    

    // 9、(***)找出下列整型数组中最大和最小值及其所在位置i

//    int a[] = {5,-9,32,77,64,-24,14,0,21,45};

//    int max = 0, min = a[1];

//    for (int i = 0 ; i < 10; i++) {

//        if (a[i] > max) {

//            max = a[i];

//        }

//        if (a[i] < min) {

//            min = a[i];

//        }

//    }

//    for (int i = 0; i < 10; i++) {

//        if (a[i] == max) {

//            printf("max = a[%d] = %d\n", i, max);

//        }

//        if (a[i] == min) {

//            printf("min = a[%d] = %d\n", i , min);

//        }

//    }

    

   /*

     10、(*)把str1, str2, str3合并到result数组中。

     char result[50] = {0};

     char str1[] = "Lanou ";

     char str2[] = "23_class ";

     char str3[] = " is niu best!";

     结果:“Lanou 23_class is niu best!”

     */

    

//    char result[50] = {0};

//    char str1[] = "Lanou ";

//    char str2[] = "23_class ";

//    char str3[] = " is niu best!";

//    

//    strcat(result, str1);

//    strcat(result, str2);

//    strcat(result, str3);

//    printf("%s", result);

    

   /*

     11、(**)找出下面程序的错误:

     int main(int argc, char *argv[])

     {

     char string[10], str1[10];

     int i;

     for(i = 0; i < 10; i++)

     {

     str1[i] = 'a';

     }

     strcpy(string, str1); //缺少'\0'

     }

     */

    

    // 13、(***)模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用ABCD表示,当选某候选人时,直接输入其编号(编号由计算机随机产生),若输入的不是ABCD则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。

    

   int a = 0 ,b =0, c = 0 ,d =0 ,n = 0;

    

    printf("输入参加选举人数n:\n");

   scanf("%d", &n);

   for (int i =0; i < n; i++) {

       int ran = arc4random() % (4 -1 + 1 ) + 1;

       if (ran == 1) {

            a++;

        }elseif(ran == 2){

            b++;

        }elseif(ran == 3){

            c++;

        }else{

            d++;

        }

    }

   int A = a ,B = b, C = c ,D = d ,E = 0;

    

   int array[] = {a, b, c, d};

   for (int i =0; i < 3; i++) {

       for (int j =0; j < 3 - i; j++) {

           if (array[j] < array[j + 1]) {

               int temp = array[j];

                array[j] = array[j +1];

                array[j +1] = temp;

            }

        }

    }

   for (int i =0; i < 4; i++) {

        

       if (array[i] == A) {

            A =0;

           printf("候选人编号: A 票数: %d\n",array[i]);

        }elseif (array[i] == B) {

            B =0;

           printf("候选人编号: B 票数: %d\n",array[i]);

        }elseif (array[i] == C) {

            C =0;

           printf("候选人编号: C 票数: %d\n",array[i]);

        }else{

            D =0;

           printf("候选人编号: D 票数: %d\n",array[i]);

        }

    }

0 0
原创粉丝点击