1. 程式人生 > >《C語言及程式設計》實踐專案——一維陣列初步

《C語言及程式設計》實踐專案——一維陣列初步

【專案1 - 陣列大折騰】
(1)建立一個有20個元素的整型陣列,通過初始化,為陣列中的前10個元素賦初值,然後通過鍵盤輸入後10個元素的值,從前往後(從第0個到第19個)輸出陣列中元素的值,每5個元素換一行。

int main( )
{
    int a[20]={...};  //初始化前10個元素
    //鍵盤輸入後10個元素的值
    		
    //由前往後輸出陣列中所有元素的值
    printf("由前往後,陣列中的值是:\n");


    return 0;
}
(2)建立一個長度為10的整型陣列並初始化,由後往前(由第9個元素向第0個元素方向)輸出陣列中所有元素的值,改變陣列元素的值,令所有的資料加倍,輸出改變後的值。
(3)建立一個長度為16的整型陣列a並初始化,先輸出陣列中元素值為3的倍數的數,再輸出所有下標為3的倍數的元素值。輸出如圖示。

(4)建立一個長度為16的整型陣列a並初始化,刪除陣列中所有能被3整除的元素(陣列中實際有效使用的元素將不足16),輸出刪除後陣列中的全部元素。
(5)建立一個長度為16的整型陣列a並初始化前15個元素,輸入一個整數b,將b插入到a[0]位置(原有的資料往後“移動”)。
[參考解答]

【專案2- 成績處理】
在陣列score中將要儲存某小組C程式設計的成績,請完成下面的處理:
(1)輸入小組人數及成績,要保證成績在0-100之間;
(2)輸出該小組的最高成績、最低成績、平均成績;
(3)輸出考得最高成績和最低成績的同學的人數;
(4)輸出考得最高成績和最低成績的同學的學號(設陣列下標即學號,可能有相同的成績)。
(5)(選做)求出所有同學成績的標準偏差,標準偏差公式為
,其中為樣本(即某同學成績)為均值(前面已經求出),N為樣本數目
提示1:可以採用“漸進式”策略,實現一個功能後除錯通過,再實現下一個功能。
提示2:介面參考見圖

提示3:請思考,如果這裡的同學人數很多,例如500、10000名,這個程式中通過鍵盤輸入的方式,已經顯得無能為力!如何解決?
int main()
{
    int score[50]; //儲存成績的陣列,不會超過50名
    int num,i;        //小組人數
    printf("小組共有多少名同學?";
    scanf("%d", &num);


    printf("請輸入學生成績:\n")
    //輸入num名同學的成績


    //求出並輸出最高成績、最低成績和平均成績


    //求出並輸出考得最高成績和最低成績人數以及學號


    //求出並輸出標準偏差(選做)
    return 0;
}
[參考解答]

【專案3-當年第幾天(陣列方案)】
  當年第幾天中定義一個函式,其引數為年、月、日的值,返回這一天為該年的第幾天。要求在main函式中輸入年月日,然後呼叫這個函式求值,並在main函式中輸出結果。

#include<stdio.h>
int days(int y, int m, int d);
int main()
{
    int year, month, day;
    printf("輸入年 月 日: ");
    scanf("%d %d %d", &year, &month, &day);
    printf("這是該年的第 %d 天\n", days(year, month, day));
    return 0;
}


int days(int y, int m, int d)
{
    int dd[13]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    //請利用d陣列,10行之內,求出並返回y年m月d日是這一年的第幾天


}

[參考解答]

【專案4-一副撲克牌】

下面的程式,輸出了52張撲克牌(如圖),請補充完整程式。

#include <stdio.h>
int main( )
{
    char c[4]= {'H','S','D','C'};
    int v[13]= {1,2,3,4,5,6,7,8,9,10,11,12,13};
    int i,j;
    for(i=0; i<4; i++)
    {
        for(j=0; j<13; j++)
        {
            printf("%c",________);
            if(v[j]==1)
                printf("A");
            else if(___________)
                printf("J");
            else if(v[j]==12)
                ______________;
            else if(v[j]==13)
                printf("K");
            else
                printf("%d",________);
            printf(" ");
        }
        printf("\n");
    }
    return 0;
}
執行圖:
  注:H、S、D、C代表4種花色
[參考解答]【專案5 - 發獎金】

(1)過年了,村裡要慶祝一下。村長對村裡的128個村民說:做一個遊戲,讓每個人把出生年+月+日得到一個數。例如:1995年11月8日=1995+11+8=2014。然後把這個數報上來。村裡有一筆錢要作為遊戲的獎金,數額為M元(在程式中可以用常量固定為一個數)。如果有人報上來的數字與M相同,就把這筆錢發給這些人。如果只有一個人得獎,獎金都歸這個人。如果有多於一個人得獎,則他們平分這筆錢。現在讓我們來寫一段程式算算都有哪些人得到了獎金?得到多少?請寫出這個程式。

(2)有村民提出村長在幸運數字上做手腳,不公平。修改後的規則是:每人寫一個1000以內的數字,誰寫的數字與平均值最接近,M元的獎金就由誰拿,有多人與平均值差值相同,則均分。例如,參加的村民有5個人,報的數字分別為98、7、50、980、1,平均值為227(平均值也取成整數就行了),與98最接近,編號為0的村民得獎。這個遊戲實際上有很強的政治學背景,一種策略是串通,大家都報一樣的數,平分獎金;在每個人都想爭取最大利益的前提下,各人報的數字又對結果都有影響,這裡麵包含一系列非常有意思的研究課題。

  提示:輸入資料後,用一次迴圈求和,進而求出平均值;再一次迴圈,求出最小的差值;再一次迴圈,將差值最小的村民的編號放入幸運陣列(因為可能不止一位,所以需要這個陣列)。
[參考解答]

相關推薦

C語言程式設計實踐專案——陣列初步

【專案1 - 陣列大折騰】(1)建立一個有20個元素的整型陣列,通過初始化,為陣列中的前10個元素賦初值,然後通過鍵盤輸入後10個元素的值,從前往後(從第0個到第19個)輸出陣列中元素的值,每5個元素換一行。int main( ) { int a[20]={...};

C語言程式設計 實踐參考 迴圈的巢狀流程圖

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C語言程式設計 實踐參考 分段函式求值switch語句版

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C語言程式設計 實踐參考——個人所得稅計算器if語句版

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C語言程式設計 實踐參考——定期存款利息計算器

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C語言程式設計 實踐參考 迴圈的巢狀流程圖

                迴圈的巢狀流程圖(1)求s=1!+2!+……10!,即求1到10的階乘和[參考解答]或者: (2)求s=1+2^2+3^3+4^4+5^5+6^6,要求n^n不能用求冪的運算直接計算(n^n表示n的n次方)[參考解答]           

C語言程式設計 實踐參考——學生成績統計

                     【專案1-學生成績統計】 每位同學的資訊學號、姓名、C、高數、英語成績。定義一個學生成績的結構體陣列,其中的資料成員包括學號(char num[13])、姓名(name)、三門課的成績(grade)、總分(score)、均分(average))。 (1)從鍵盤上輸入N

C語言程式設計實踐專案——二陣列與指標

【專案1-二維陣列當函式引數】定義一個函式來完成對引數陣列中元素的求和工作,函式宣告如下:int sum(int array[ ][4],int m,int n); //該函式完成對array陣列中的前m行和n列元素求和在以下程式的基礎上,完成對sum函式的定義。#include <stdio.h&g

C語言程式設計實踐專案——二陣列

【專案1-折騰二維陣列】建立一個5行4列的二維整型陣列,通過初始化,為陣列中的前兩列的10個元素賦初值,然後:通過鍵盤輸入,使後兩列的10個元素獲得值;按行序優先輸出陣列元素;將所有元素值乘以3後儲存在

C語言程式設計實踐專案——利用switch語句解決問題

【專案1:投票表決器】設計一個投票表決器,其功能是:輸入Y、y,列印agree輸入N、n,列印disagree輸入其他,列印lose請在下面程式碼的基礎上,將程式補充完整#include <stdio.h> int main( ) { char c;

C語言程式設計初步》第四講實踐專案

編譯環境:Dev-C++ 5.63 //攝氏溫度轉換為華氏溫度 #include <stdio.h> int main() {float C,F;printf("請輸入攝氏溫度值:");s

C語言程式設計實踐專案——用檔案輸入輸出初步

【專案1-由鍵盤到檔案】 (1)從鍵盤輸入一個檔名,以及一個以#結束的字元序列,將輸入的字元儲存到檔案中去。 #include "stdio.h" #include "stdlib.h" in

C語言程式設計初步》第36講實踐專案

專案1: #include <stdio.h> int main() { char c; int i; scanf("%d",&i); while(

C語言程式設計實踐專案——發現Bug

【專案1-sin泰勒展式中的錯誤】下面是sin函式的泰勒展式:(注:x取弧度值,而非角度值)編寫了double mysin(double x)用於求sin值,卻“死”在了123°上。劇透一下,迴圈沒有問題(當然問題會表現在迴圈中)。試著用除錯工具找出問題出現在哪裡,然後給出解

C語言程式設計實踐專案——連結串列初步

【專案1-連結串列的合併】 輸入一個整數m,表示A連結串列的長度,再輸入m個數作為A連結串列中的m個數據元素,建立連結串列A,其頭指標為heada。輸入一個整數n,表示B連結串列的長度,再輸入n個

C語言程式設計實踐參考——二分法解方程

【專案2-二分法解方程】  二分法是在電腦科學中很重要的一種方法,用於查詢產生二分查詢演算法,還可以用在很多場合。  可以用二分法解方程。  對於區間[a,b]上連續不斷且f(a)·f(b)<0的

C語言程式設計實踐參考——迴圈的巢狀流程圖

迴圈的巢狀流程圖(1)求s=1!+2!+……10!,即求1到10的階乘和[參考解答]或者: (2)求s=1+2^2+3^3+4^4+5^5+6^6,要求n^n不能用求冪的運算直接計算(n^n表示n的n次

C語言程式設計實踐參考——三色球問題

【專案6-三色球問題】若一個口袋中放有12個球,其中有3個紅的。3個白的和6個黒的,問從中任取8個共有多少種不同的顏色搭配?提示:設任取的紅球個數為i,白球個數為j,則黒球個數為8-i-j,根據題意紅球

C語言程式設計實踐參考——矩陣運算

【專案2-矩陣運算】  在數學中,一個矩陣由若干行和若干列資料組成,可以直接儲存為一個二維陣列。(1)矩陣相加  兩個矩陣相加,要求其行、列數均相等。運算規則為:一個n行m列的矩陣A加上另一個n行m列的

C語言程式設計實踐參考——簡單迴圈的流程圖

簡單迴圈的流程圖(提示:m是一個變數,在程式中輸入)(1)求1到m的倒數和,即  [參考解答](2)求1到m的平方和[參考解答](3)求1到m間所有奇數的和[參考解答](4)求值:  [參考解答](5)