小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

第八周總結(jié)

 印度阿三17 2019-04-18

?

?

這個作業(yè)屬于那個課程

C語言程序設(shè)計II

這個作業(yè)要求在哪里

https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2935

我在這個課程的目標是

使用字符串函數(shù),了解結(jié)構(gòu)

這個作業(yè)在那個具體方面幫助我實現(xiàn)目標

熟練的運用指針,學(xué)習結(jié)構(gòu)

參考文獻

c語言程序設(shè)計p207-p209

?

6-1?函數(shù)實現(xiàn)字符串逆序?(15?分)

本題要求實現(xiàn)一個字符串逆序的簡單函數(shù)。

函數(shù)接口定義:

void f( char *p );

函數(shù)f對p指向的字符串進行逆序操作。要求函數(shù)f中不能定義任何數(shù)組,不能調(diào)用任何字符串處理函數(shù)。

裁判測試程序樣例:

#include <stdio.h>

#define MAXS 20

 

void f( char *p );

void ReadString( char *s ); /* 由裁判實現(xiàn),略去不表 */

 

int main()

{

    char s[MAXS];

 

    ReadString(s);

    f(s);

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

 

    return 0;

}

 

/* 你的代碼將被嵌在這里 */

輸入樣例:

Hello World!

輸出樣例:

!dlroW olleH

作者: 張泳

單位: 浙江大學(xué)城市學(xué)院

時間限制: 400 ms

內(nèi)存限制: 64 MB

代碼

void f(char *p)

 {

    int n=strlen(p);

    int i;

    char temp;

    for(i=0;i<n/2;i  )

    {

        temp=p[i];

        p[i]=p[n-i-1];

        p[n-i-1]=temp;

     }

     return ;

}

?

思路圖

?

?

錯誤截圖

問題

結(jié)果截圖

?

6-3?字符串的連接?15?)

本題要求實現(xiàn)一個函數(shù),將兩個字符串連接起來。

函數(shù)接口定義:

char *str_cat( char *s, char *t );

函數(shù)str_cat應(yīng)將字符串t復(fù)制到字符串s的末端,并且返回字符串s的首地址。

裁判測試程序樣例:

#include <stdio.h>

#include <string.h>

 

#define MAXS 10

 

char *str_cat( char *s, char *t );

 

int main()

{

    char *p;

    char str1[MAXS MAXS] = {'\0'}, str2[MAXS] = {'\0'};

 

    scanf("%s%s", str1, str2);

    p = str_cat(str1, str2);

    printf("%s\n%s\n", p, str1);

 

    return 0;

}

 

/* 你的代碼將被嵌在這里 */

輸入樣例:

abc

def

輸出樣例:

abcdef

abcdef

代碼

char *str_cat(char *s,char *t)

{

    return strcat(s,t);

}

?

思路圖

?

?

問題

在輸出時,總是發(fā)現(xiàn)輸出語句中前一句總是出錯,而后一句是對的

解決方法,return s;

結(jié)果截圖

?

7-1?輸出學(xué)生成績?20?)

本題要求編寫程序,根據(jù)輸入學(xué)生的成績,統(tǒng)計并輸出學(xué)生的平均成績、最高成績和最低成績。建議使用動態(tài)內(nèi)存分配來實現(xiàn)。

輸入格式:

輸入第一行首先給出一個正整數(shù)N,表示學(xué)生的個數(shù)。接下來一行給出N個學(xué)生的成績,數(shù)字間以空格分隔。

輸出格式:

按照以下格式輸出:

average = 平均成績

max = 最高成績

min = 最低成績

結(jié)果均保留兩位小數(shù)。

輸入樣例:

3

85 90 95

輸出樣例:

average = 90.00

max = 95.00

min = 85.00

代碼

#include<stdio.h>

#include<stdlib.h>

int main()

{

    int n,i,*p;

    double max,min,average,sum=0;

    scanf("%d",&n);

      if ((p=(int * )calloc(n,sizeof(int))) == NULL){

        printf ("Not able to allocate memory.\n");

        exit(1);

    }

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

    scanf("%d",p i);

    }

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

     sum=sum *(p i);

    }

     printf("average = %.2f\n",sum/n);

     max=*p;   

     min=*p;

     for(i=1;i<n;i  ){ 

     if( max <*(p i)){ 

       max = *(p i);

    }

     if(min >*(p i)){

       min = *(p i);

    }

     }

    printf ("max = %.2f\nmin = %.2f",max,min);

    free(p);   

    return 0;

}

思路圖

錯誤截圖

?

?

?

問題

輸出結(jié)果不對

結(jié)果截圖

7-4?字符串排序?20?)

本題要求編寫程序,讀入5個字符串,按由小到大的順序輸出。

輸入格式:

輸入為由空格分隔的5個非空字符串,每個字符串不包括空格、制表符、換行符等空白字符,長度小于80。

輸出格式:

按照以下格式輸出排序后的結(jié)果:

After sorted:

每行一個字符串

輸入樣例:

red yellow blue green white

輸出樣例:

After sorted:

blue

green

red

white

yellow

代碼

#include<stdio.h>

#include<string.h>

 

int main()

{

    int i, j;

    char a[5][80],b[80];

   

    for(i = 0;i < 5;i  )

    {

        scanf("%s", &a[i]);

    }

   

    for(i = 1;i < 5;i  )

    {

        for(j = 0;j < 5-i;j  )

        {

            if(strcmp(a[j],a[j 1])>0)

            {

                strcpy(b,a[j]);

                strcpy(a[j],a[j 1]);

                strcpy(a[j 1],b);

            }

        }

    }

   

    printf("After sorted:\n");

   

    for(i = 0;i < 5;i  )

    {

        printf("%s\n", a[i]);

    }

   

    return 0;

}

思路圖

?

?

錯誤截圖

?

?

問題

怎樣定義數(shù)組可以使程序運行成功

解決方法,定義二維數(shù)組

結(jié)果截圖

?

?

7-3?計算平均成績?15?)

給定N個學(xué)生的基本信息,包括學(xué)號(由5個數(shù)字組成的字符串)、姓名(長度小于10的不包含空白字符的非空字符串)和成績([0,100]區(qū)間內(nèi)的整數(shù)),要求計算他們的平均成績,并順序輸出平均線以下的學(xué)生名單。

輸入格式:

輸入在一行中給出正整數(shù)N(≤10)。隨后N行,每行給出一位學(xué)生的信息,格式為“學(xué)號 姓名 成績”,中間以空格分隔。

輸出格式:

首先在一行中輸出平均成績,保留2位小數(shù)。然后按照輸入順序,每行輸出一位平均線以下的學(xué)生的姓名和學(xué)號,間隔一個空格。

輸入樣例:

5

00001 zhang 70

00002 wang 80

00003 qian 90

10001 li 100

21987 chen 60

輸出樣例:

80.00

zhang 00001

chen 21987

代碼

#include<stdio.h>

struct student{

    int num[100];

    char name[100][100];

    int mark[100];

};

int main (void)

{

    int i,n;

    struct student s1,min;

    int sum=0;

    double average;

    scanf("%d",&n);

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

        scanf("%d %s %d",&s1.num[i],&s1.name[i],&s1.mark[i]);

        sum=sum s1.mark[i];

    }

    average=sum/n;

    printf("%.2lf\n",average);

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

        if(s1.mark[i]<average)

        printf("%s d\n",s1.name[i],s1.num[i]);

     }

     return 0;

}

思路圖

?

?

錯誤截圖

?

?

問題

如何定義存儲名字的數(shù)組

解決方法,要定義二維數(shù)組,不然答案錯誤;

結(jié)果截圖

?

?

學(xué)習進度條

時間

代碼行數(shù)

這周所花的時間

學(xué)到的知識點簡介

3/2-3/19

35

四小時左右

通過代碼讀取文件里的數(shù)據(jù),并且打印

3/9-3/19

65

三十分鐘

?

3/19-3/22

186

五個小時左右

二維數(shù)組的用法加上二分法找元素

3/22-3/28

31

三小時左右

字符串的使用

4/2-4/9

130

2小時左右

指針的使用

4/15-4/19

200

2

指針內(nèi)存的動態(tài)分配,不是很清楚使用動態(tài)分配

?

?

?

來源:http://www./content-4-167451.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多