1. 程式人生 > >輸入m個學生,每個學生有4門課,在主調函式中輸入學生的相關資訊,編寫三個函式: (1)求第一門課的平均分; (2)找出有兩門課以上不及格的學生,並輸出他們的學號和全部成績,要求用指標函式實現:fl

輸入m個學生,每個學生有4門課,在主調函式中輸入學生的相關資訊,編寫三個函式: (1)求第一門課的平均分; (2)找出有兩門課以上不及格的學生,並輸出他們的學號和全部成績,要求用指標函式實現:fl

  輸入m個學生,每個學生有4門課,在主調函式中輸入學生的相關資訊,編寫三個函式:

(1)求第一門課的平均分;

(2)找出有兩門課以上不及格的學生,並輸出他們的學號和全部成績,要求用指標函式實現:float*Search(float(*p)[4],int n);

(3)找出全部成績在85分以上的學生。

#include<stdio.h>

#define N 40

float average(float (*p)[4],int n)

{

int i;

float ave=0;

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

ave=ave+**(p+i);

ave=ave/n;

return ave;

}

float *Search(float (*p)[4],int n){

//找兩門不及格的同學 

int j,count=0;

for (j=0;j<4;j++){

if(*(*(p+n)+j)<60)

count++;

}

if(count>2)

return *(p+n);

else

   return NULL; 

}

void Good(int a[],float (*p)[4],int n){

//兩門成績85以上 

int i,j,flag;

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

flag=1;

for (j=0;j<4&&flag;j++){

if (*(*(p+i)+j)<85)

      flag=0;

}

if (flag){

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

for (j=0;j<4;j++)

  printf("%6.1f",*(*(p+i)+j));

 printf("\n");

  }

}

}

int main()

{

float score[N][4],ave,*s;

int n,i,j,a[N];

printf("輸入學生個數:\n");

scanf("%d",&n);

printf("輸入%d個學生的學號與成績:\n",n);

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

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

for(j=0;j<4;j++)

scanf("%f",&score[i][j]);

}

ave=average(score,n);

printf("第一門課的平均成績為:%.2f\n",ave);   

printf("兩門課以上不及格的同學的學號和成績為:\n");

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

s=Search(score,i);

if (s){

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

for (j=0;j<4;j++)

    printf("%6.1f",score[i][j]);

    printf("\n");

}

}

printf("全部成績在85分以上的學生的學號和成績:\n");

Good(a,score,n);

return 0;

}

相關推薦

輸入m個學生,每個學生有4門課,主調函式中輸入學生相關資訊,編寫三個函式: (1)求第一門課的平均分; 2找出課以上不及格的學生,並輸出他們的學號和全部成績要求用指標函式實現fl

  輸入m個學生,每個學生有4門課,在主調函式中輸入學生的相關資訊,編寫三個函式: (1)求第一門課的平均分; (2)找出有兩門課以上不及格的學生,並輸出他們的學號和全部成績,要求用指標函式實現:float*Search(float(*p)[4],int n); (3)找出

例8.25a學生每個學生b課程的成績要求在使用者輸入學生序號以後輸出學生全部成績指標函式實現

#include <stdio.h> int main() {float score[ ][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}; //定義陣列,存放成績 float *search(float (*pointer)[4]);

n整數使前面各數順序向後移m位置最後m個數變成前面m個數。寫一函式實現以上功能在主函式輸入n個數輸出調整後的n個數。

import java.util.Scanner; public class Main {     public static void main(String[] args){         Scanner sc = new Scann

根據類Student的定義建立五該類的物件輸出每個學生資訊 計算輸出這五學生Java語言成績的平均值以及計算輸出他們Java語言成績的最大值最小值。

public class Test {public static void show() {Student s1 = new Student("張三", 1, "男", 20, 90);Student s2 = new Student("李思思", 2, "女", 22,

建立一個物件陣列內放5學生的資料學號成績指向物件的指標函式引數在max函式5學生成績最高者輸出學號

原始碼如下:主要注意友元函式的宣告 #include <iostream> #include <string> using namespace std; class Student { public:     Student(string n,flo

陣列出現一次的數字其他數字都出現數字

public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { int length=array.length; if(length==2){

ACMNO.41C語言-數字調序 n整數使前面各數順序向後移m位置最後m個數變成前面m個數見圖。寫一函式實現以上功能在主函式輸入n個數輸出調整後的n個數

題目描述 有n個整數,使前面各數順序向後移m個位置,最後m個數變成前面m個數,見圖。 寫一函式:實現以上功能,在主函式中輸入n個數和輸出調整後的n個數。 輸入 輸入資料的個數n n個整數 移動的位置m 輸出 移動後的n個數 樣例輸入 10 1 2 3 4

從鍵盤輸入若干學生成績統計輸出最高成績最低成績輸入負數時結束輸入

#include<iostream> using namespace std; int main() { double a[100]; double max=0,min=100,t; int i; for(i=0;i<100;i++) {

1到10萬這些數去除2打亂次序如何個數。不準點陣圖”...

#include <algorithm> #include <iostream> #include <vector> #include <ctime> using namespace std; void shuffle(vect

指標方法處理n整數使前面各數順序向後移m位置最後m個數變成最前面m個數。編寫一個函式實現上述功能在主函式輸入n整數輸出調整後的n個數

第一種方法:指標法 #include<stdio.h> #include<stdlib.h> int  w(int *d,int e,int g) {      int i,j,t;      int *r;      j=0;    for(i=

一個數組個數的為N數字的下標

完整 進行 代碼 ray 由於 比較 返回 put else 分析,兩個數字的和為N。那麽這兩個數字是否是唯一的呢?輸出的下標是否是第一對出現的呢? 1,我們假設這兩個數字是唯一的 和是唯一的,那麽其中一個數字越大,另一個數字就越小。想到大小關系,我們就想到了排序。那麽首先

一個數組只有數字是出現一次 其他所有數字都出現了數字

題目:一個數組中只有兩個數字是出現一次, 其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。 參考程式碼: #include<stdio.h> #include <windows.h> void find_num(int arr[], int len

重複次的數--且只有一個數字重複其餘都重複

問題描述:數字範圍是0-99的整數,給出101個整數,其中只有一個是重複兩次的數,找出這個數 分析:如果是有序的話,遍歷一次就可以找出 方法一 :先排序,再遍歷,遍歷超過一次 方法二 :只是排序,排序過程中對於元素相等這一特殊情況拿出來判斷,直接返回相等的這個元素, 方法三 :使用亦或運

一個數組只有數字是出現一次其他所有數字都出現了次。 數字程式設計實現

1.一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。 #include<stdio.h> #include<stdio.h> int main() { int arr[] = { 1, 3, 8, 1,

【C語言】一個數組只有數字是出現一次其他所有數字都出現了次。 數字程式設計實現

一看到這道題,我想到了之前學習過的異或。我們知道兩個相同的數字異或的結果是 0,因為在計算機中,異或運算是按照二進位制位來運算的,相同為 0 ,相異為  1。任何數與 0 異或都等於它自己。既然我們要找出來一組數中不同的兩個數字,也可以採用這種方法。 但是這次不是直接異或,

一個數組只有數字是出現一次其他所有數字都出現了次。數字

方法1:遍歷,查詢 定義一個臨時變數k=0,不斷將陣列每個數與陣列每個元素比較,如果兩個數相等k++,然後判斷k是否等於1。如果為1,則這個數在陣列只出現一次;如果k=2,說明出現兩次。 #define _CRT_SECURE_NO_WARNINGS 1

一個數組只有數字是出現一次的其他的數字都出現了數字編寫程式。

本題的最關鍵之處就是巧用兩個數異或得到的二進位制中“1”單位位數程式碼如下:方法一:#include<stdio.h> int main() { int arr[] = { 1, 2, 3, 4, 1, 2, 3, 4, 5, 6 }; int i = 0;

一個數組只有數字是出現一次其他所有數字都出現了次。數字程式設計實現

#include<stdio.h> Find_Num(int arr[], int sz , int * num1, int *num2) { * num1 = 0; * num2 = 0; int i = 0;