輸入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.25有a個學生,每個學生有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,我們假設這兩個數字是唯一的 和是唯一的,那麽其中一個數字越大,另一個數字就越小。想到大小關系,我們就想到了排序。那麽首先
編寫一個撲克類(每張撲克有花色和數值,例如紅心A,草花10),將52張撲克牌放到集合中(自己去選擇集合類) 編寫3個方法 方法1.將集合中的所有撲克重新洗牌,並將撲克輸出(打印出來即可) 方法2
/** * Created by whp on 2018/8/1. */ public class Poker { String color; String number; public Poker(String color, String number) {
一個數組中只有兩個數字是出現一次, 其他所有數字都出現了兩次,找出這兩個數字
題目:一個數組中只有兩個數字是出現一次, 其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。 參考程式碼: #include<stdio.h> #include <windows.h> void find_num(int arr[], int len
找出重複兩次的數--有且只有一個數字重複兩次,其餘都不重複
問題描述:數字範圍是0-99的整數,給出101個整數,其中只有一個是重複兩次的數,找出這個數 分析:如果是有序的話,遍歷一次就可以找出 方法一 :先排序,再遍歷,遍歷超過一次 方法二 :只是排序,排序過程中對於元素相等這一特殊情況拿出來判斷,直接返回相等的這個元素, 方法三 :使用亦或運
struct student 三個學生建立一個單鏈表求出三個學生c++平均成績在主函式中 struct student 三個學生建立一個單鏈表求出三個學生c++平均成績在主函式中輸入輸出學生資訊
#include<stdio.h> #include<stdlib.h> #include<conio.h> /定義結構體/ struct student { int num; float score; struct student *next; };
一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。
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;