iT邦幫忙

0

C語言問題 1.學生成績 2.空間配置 3.微分處理

1.學生成績

產生某班50位學生的資料,每位學生資料包括:學生姓名、號碼、計概、與微積分兩科成績,資料限制條件如下說明。

1.學生姓名由name.txt讀入。

2.每位學生之號碼為照順序1~50號。

3.所有成績均為介於70~100之間的整數,亂數產生,可重複。

4.可輸出學生資料,輸出格式如格式一,名稱為student.txt。

5.按每位學生之平均成績高低由高至低排列印出。平均成績相同時,則以計概成績較高者為優先排列。列印格式如格式二。

name.txt

Larry Garrett Jerry Michael Patrick Melody Leland Sebastian Alex Willy Johnny Thomas Peter Nancy Connor Christopher Roy Seth Adrian Dakota Eduardo Carlos Jeremiah Jared Aaron Jensen Ryan Cole Dylan Charles Gavin Alvin Walter Ian Kieran Andrew Pete William Anthony Cole Cameron Joseph Eric Betty Carson Clyde Jaime Matthew Kevin Mickey

格式ㄧ

學生姓名 號碼


 Larry 1

 Garrett 2

 ...

 ...

 Mickey 50

格式二

學生姓名 計概成績 微積分成績 平均成績 名次


 Dakota XXX XXX XXX 1

 Walter XXX XXX XXX 2

 ...

 ...

 Carson XXX XXX XXX 50

2.空間配置

利用亂數取20個A~Z的大寫英文字母(可重複),並由大到小排序。

需使用malloc搭配指標方式,不可使用陣列。

輸出結果

原始字母:

R U H L G R M R Y N K D M H S E K V C Q

排序結果:

C D E G H H K K L M M N Q R R R S U V Y

3.微分處理

寫出一個多項式的結構,包含係數和次方。

一開始先輸入一個值,代表這個多項式一共有多少項

give me a number:%d

一次輸入兩個數,先後代表係數和次方,ㄧ直到輸入到最後一項,或是兩個都為0為止

Coefficient:%d

Power:%d

印出到現在所有的項

3x^2 + 4x^4 + 5x^1 + 5x^0

然後從大到小排列

4x^4 + 3x^2 + 5x^1 + 5x^0

列出可微分的次數直到0

0階:4x^4 + 3x^2 + 5x^1 + 5x^0

1階:16x^3 + 6x^1 + 5x^0

2階:48x^2 + 6x^0

3階:96x^1

4階:96x^0

5階:0

用malloc去令空間

結構不能用→去附值

看更多先前的討論...收起先前的討論...
No money, no answer.
dragonH iT邦超人 5 級 ‧ 2020-09-23 14:53:07 檢舉
1.學生成績

產生某班50位學生的資料,每位學生資料包括:學生姓名、號碼、計概、與微積分兩科成績,資料限制條件如下說明。

1.學生姓名由name.txt讀入。

2.每位學生之號碼為照順序1~50號。

3.所有成績均為介於70~100之間的整數,亂數產生,可重複。

4.可輸出學生資料,輸出格式如格式一,名稱為student.txt。

5.按每位學生之平均成績高低由高至低排列印出。平均成績相同時,則以計概成績較高者為優先排列。列印格式如格式二。

name.txt

Larry Garrett Jerry Michael Patrick Melody Leland Sebastian Alex Willy Johnny Thomas Peter Nancy Connor Christopher Roy Seth Adrian Dakota Eduardo Carlos Jeremiah Jared Aaron Jensen Ryan Cole Dylan Charles Gavin Alvin Walter Ian Kieran Andrew Pete William Anthony Cole Cameron Joseph Eric Betty Carson Clyde Jaime Matthew Kevin Mickey

格式ㄧ

學生姓名 號碼

Larry 1

Garrett 2

...

...

Mickey 50

格式二

學生姓名 計概成績 微積分成績 平均成績 名次

Dakota XXX XXX XXX 1

Walter XXX XXX XXX 2

...

...

Carson XXX XXX XXX 50

2.空間配置

利用亂數取20個A~Z的大寫英文字母(可重複),並由大到小排序。

需使用malloc搭配指標方式,不可使用陣列。

輸出結果

原始字母:

R U H L G R M R Y N K D M H S E K V C Q

排序結果:

C D E G H H K K L M M N Q R R R S U V Y

3.微分處理

寫出一個多項式的結構,包含係數和次方。

一開始先輸入一個值,代表這個多項式一共有多少項

give me a number:%d

一次輸入兩個數,先後代表係數和次方,ㄧ直到輸入到最後一項,或是兩個都為0為止

Coefficient:%d

Power:%d

印出到現在所有的項

3x^2 + 4x^4 + 5x^1 + 5x^0

然後從大到小排列

4x^4 + 3x^2 + 5x^1 + 5x^0

列出可微分的次數直到0

0階:4x^4 + 3x^2 + 5x^1 + 5x^0

1階:16x^3 + 6x^1 + 5x^0

2階:48x^2 + 6x^0

3階:96x^1

4階:96x^0

5階:0

用malloc去令空間

結構不能用→去附值
淺水員 iT邦研究生 4 級 ‧ 2020-09-23 14:53:27 檢舉
所以問題是什麼?
石頭 iT邦新手 2 級 ‧ 2020-09-23 15:01:47 檢舉
這87%是作業,然後問題還講不清楚,看來你不清楚被我這顆石頭打到有多痛。
Franky Chen iT邦研究生 4 級 ‧ 2020-09-23 15:41:49 檢舉
作業?你的問題在哪裡?不要直接把題目丟上來吧?code勒?
小魚 iT邦大師 1 級 ‧ 2020-09-23 16:17:12 檢舉
發包給我可以幫你做.
這是來討罵的發文嘛?
這裡不是homework邦幫忙
1
海綿寶寶
iT邦大神 1 級 ‧ 2020-09-23 15:16:39

我只會第2題

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int cntArr = 20;
    char *arrChr;
    char iTemp;
    
    srand(time(NULL));
    
    //需使用malloc搭配指標方式,不可使用陣列
    arrChr = malloc(cntArr * sizeof(char));
    
    //亂數取20個A~Z的大寫英文字母(可重複)
    for (int i=0;i<cntArr;i++) {
        *(arrChr+i) = 65+(rand()%26);
    }
    for (int i=0;i<cntArr;i++) {
        printf("%c ", *(arrChr+i));
    }
    printf("\n");

    //並由大到小排序
    for (int i=0;i<(cntArr-1);i++) {
        for (int j=i+1;j<cntArr;j++) {
            if (*(arrChr+i) < *(arrChr+j)) {
                iTemp = *(arrChr+i);
                *(arrChr+i) = *(arrChr+j);
                *(arrChr+j) = iTemp;
            }
        }
    }
    for (int i=0;i<cntArr;i++) {
        printf("%c ", *(arrChr+i));
    }
    printf("\n");

    //並由小到大排序
    for (int i=0;i<(cntArr-1);i++) {
        for (int j=i+1;j<cntArr;j++) {
            if (*(arrChr+i) > *(arrChr+j)) {
                iTemp = *(arrChr+i);
                *(arrChr+i) = *(arrChr+j);
                *(arrChr+j) = iTemp;
            }
        }
    }
    for (int i=0;i<cntArr;i++) {
        printf("%c ", *(arrChr+i));
    }
    printf("\n");
    
    free(arrChr);

    return 0;
}
淺水員 iT邦研究生 4 級 ‧ 2020-09-23 15:52:51 檢舉

懶得乖乖排序XD

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int main()
{
    int i, *countArr, k;
    if((countArr=malloc(sizeof(int)*26))==NULL) {
        printf("malloc error");
        return 0;
    }
    memset(countArr, 0, sizeof(int)*26);
    srand(time(NULL));
    for(i=0;i<20;++i) {
        k=(int)(rand()/(RAND_MAX+1.0)*26);
        printf("%c ", 'A'+k);
        ++*(countArr+k);
    }
    printf("\n");
    for(i=0;i<26;++i) {
        if(*(countArr+i)>0) {
            for(k=0; k<*(countArr+i); ++k) {
                printf("%c ", 'A'+i);
            }
        }
    }
    free(countArr);
    return 0;
}
1
richardsuma
iT邦大師 1 級 ‧ 2020-09-23 18:05:43

用malloc去令空間

結構不能用→去附值

是我的年代太久遠了嗎?
這是什麼問題與用詞,我都看不懂?
大概老矣,視茫茫,而髮蒼蒼,而齒牙動搖。

0
abs54875487
iT邦見習生 ‧ 2020-09-24 14:00:49

同學,時間過了分數已經打七折了,你還要嗎^^

0
裸男
iT邦新手 5 級 ‧ 2020-09-25 01:07:59

同學你連這麼簡單的作業都寫不出來喔?還要把作業來整串拿上來問
不過你就算教了分數也要打七折 我還會幫你跟助教說你是網路抄來ㄉ

我要發表回答

立即登入回答