天天看點

C語言經典例題:

/////////////////////////////////////選做題

    //1、随機産生20個[10 , 50]的正整數存到數組中,并求數組中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。

    //求最大值,最小值,都是拿每一個元素和max, min,比較

    /*

     int a[20] = {0};

     int average = 0, secondmax = 0, max = 0, min = 50, sum = 0;

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

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

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

        sum = sum + a[i];

        if (a[i] > max) {

        max = a[i];

     }

     if (min > a[i]) {

            min = a[i];

        }

     average = (max + min) / 2;

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

        secondmax = max;

     } else if (a[i] > secondmax && a[i] != max) {

            secondmax = a[i];

     printf("最大值是:%d 最小值是:%d 平均值是:%d 元素之和是:%d 第二大值是:%d\n", max, min, average, sum, secondmax);

     */

    //2.程式設計在一個已知的字元串中查找最長單詞,假定字元串中隻含字母和空格,用空格來分隔單詞

     char str[40] = "i love ios  and i want an iphone 6plus";

     int i = 0, nowlenght = 0, maxlenght = 0, startnumber = 0;

     printf("%s\n",str);

     for (i = 0; i < 40; i ++) {

        if (str[i] != ' ' && str[i] != '\0') {

        nowlenght ++;

     } else {

        if (nowlenght > maxlenght) {

        maxlenght = nowlenght;

        startnumber = i - nowlenght;

            nowlenght = 0;

     printf("%d\n", maxlenght);

     for (int i = startnumber; i < maxlenght + startnumber; i ++) {

     //它是從開始位置一直列印到最長的單詞,從i開始,循環次數就是maxlenght +startnumber

        printf("%c", str[i]);

     printf("\n");

    //1.耶稣有13個門徒,其中有一個就是出賣耶稣的叛徒,請用排除法找出這位叛徒:13個人圍坐一圈,

    //從第一個人開始循環報數,數到三排除,最後剩下的人就是叛徒

     int people[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13};

     int count = 0;//用來記錄報數

     int number = 13;//記錄活着的人數

     int i = 0;//記錄第幾個人正在報數

     while (number > 1) {

        if (people[i] != 0) {

        count++; //如果a[i ]沒有被剔除掉,報數有效

     } if (count == 3) {

        people[i] = 0;//剔除掉,

        count = 0;//報數清零

        number--;//存活人數減一

     i++;//記錄報數的下一個人

     if (i == 13) {

            i = 0;// 當超出範圍時,立即将報數人數置為第一人

     }    for (int i = 0; i < 13; i++) {

            if (people[i] > 0) {

            printf("叛徒是第%d人 ", people[i]);

//9.有1000000個數,每個數取值範圍是0-999999

    //找出其中重複的數,重複次數。

    //第一種方式

 /*

    int a[10] = {0};//0~9

    int ran = 0;//接收每次的随機值

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

        ran = arc4random() % 10;//随機下标

        printf("%d ",ran);

        a[ran]++;//将下标對應的元素值加1

    }

    printf("\n");

        if (a[i] > 1) {

            printf("%d 重複 %d次數\n", i, a[i]);

    */

繼續閱讀