日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

第八周總結(jié)

 印度阿三17 2019-04-18

?

?

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

C語(yǔ)言程序設(shè)計(jì)II

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

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

我在這個(gè)課程的目標(biāo)是

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

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

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

參考文獻(xiàn)

c語(yǔ)言程序設(shè)計(jì)p207-p209

?

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

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

函數(shù)接口定義:

void f( char *p );

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

裁判測(cè)試程序樣例:

#include <stdio.h>

#define MAXS 20

 

void f( char *p );

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

 

int main()

{

    char s[MAXS];

 

    ReadString(s);

    f(s);

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

 

    return 0;

}

 

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

輸入樣例:

Hello World!

輸出樣例:

!dlroW olleH

作者: 張泳

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

時(shí)間限制: 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 ;

}

?

思路圖

?

?

錯(cuò)誤截圖

問題

結(jié)果截圖

?

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

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

函數(shù)接口定義:

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

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

裁判測(cè)試程序樣例:

#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);

}

?

思路圖

?

?

問題

在輸出時(shí),總是發(fā)現(xiàn)輸出語(yǔ)句中前一句總是出錯(cuò),而后一句是對(duì)的

解決方法,return s;

結(jié)果截圖

?

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

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

輸入格式:

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

輸出格式:

按照以下格式輸出:

average = 平均成績(jī)

max = 最高成績(jī)

min = 最低成績(jī)

結(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;

}

思路圖

錯(cuò)誤截圖

?

?

?

問題

輸出結(jié)果不對(duì)

結(jié)果截圖

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

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

輸入格式:

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

輸出格式:

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

After sorted:

每行一個(gè)字符串

輸入樣例:

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;

}

思路圖

?

?

錯(cuò)誤截圖

?

?

問題

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

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

結(jié)果截圖

?

?

7-3?計(jì)算平均成績(jī)?15?)

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

輸入格式:

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

輸出格式:

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

輸入樣例:

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;

}

思路圖

?

?

錯(cuò)誤截圖

?

?

問題

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

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

結(jié)果截圖

?

?

學(xué)習(xí)進(jìn)度條

時(shí)間

代碼行數(shù)

這周所花的時(shí)間

學(xué)到的知識(shí)點(diǎn)簡(jiǎn)介

3/2-3/19

35

四小時(shí)左右

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

3/9-3/19

65

三十分鐘

?

3/19-3/22

186

五個(gè)小時(shí)左右

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

3/22-3/28

31

三小時(shí)左右

字符串的使用

4/2-4/9

130

2小時(shí)左右

指針的使用

4/15-4/19

200

2

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

?

?

?

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多