1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.) #include<stdio.h> #include<stdlib.h> void merge(int arr[],int low,int mid,int high){ int i,k; int *tmp=(int*)malloc((high-low+1)*sizeof(int)); int left_low=low; int left_high=mid; int right_low=mid+1; int right_high=high; for(k=0;left_low<=left_high&&right_low<=right_high;k++) { if(arr[left_low]<=arr[right_low]){ tmp[k]=arr[left_low++]; } else{ tmp[k]=arr[right_low++]; } } if(left_low<=left_high){ for(i=left_low;i<=left_high;i++){ tmp[k++]=arr[i]; } } if(right_low<=right_high){ for(i=right_low;i<=right_high;i++) tmp[k++]=arr[i]; } for(i=0;i<high-low+1;i++) arr[low+i]=tmp[i]; } void merge_sort(int a[],int p,int r){ int q; if(p<r){ q=(p+r)/2; merge_sort(a,p,q); merge_sort(a,q+1,r); merge(a,p,q,r); } } int main(){ int a[8]={3,5,8,6,4,1,1}; int i,j; int x=10; merge_sort(a,0,6); printf("after Merging-Sort:\n"); for(i=0;i<7;i++){ printf("%d",a[i]); } printf("\n"); i=0;j=6; do{ if(a[i]+a[j]==x){ printf("exist"); break; } if(a[i]+a[j]>x) j--; if(a[i]+a[j]<x) i++; }while(i<=j); if(i>j) printf("not exist"); system("pause"); return 0; }
上傳時間: 2017-04-01
上傳用戶:糖兒水嘻嘻
module M_GAUSS !高斯列主元消去法模塊 contains subroutine LINEQ(A,B,X,N) !高斯列主元消去法 implicit real*8(A-Z) integer::I,K,N integer::ID_MAX !主元素標(biāo)號 real*8::A(N,N),B(N),X(N) real*8::AUP(N,N),BUP(N) !A,B為增廣矩陣 real*8::AB(N,N+1) real*8::VTEMP1(N+1),VTEMP2(N+1) AB(1:N,1:N)=A AB(:,N+1)=B
標(biāo)簽: fortan Newton 程序 數(shù)值分析 方程 非線性
上傳時間: 2018-06-15
上傳用戶:answer123
K-Means算法是最古老也是應(yīng)用最廣泛的聚類算法,它使用質(zhì)心定義原型,質(zhì)心是一組點的均值,通常該算法用于n維連續(xù)空間中的對象。 K-Means算法流程 step1:選擇K個點作為初始質(zhì)心 step2:repeat 將每個點指派到最近的質(zhì)心,形成K個簇 重新計算每個簇的質(zhì)心 until 質(zhì)心不在變化 例如下圖的樣本集,初始選擇是三個質(zhì)心比較集中,但是迭代3次之后,質(zhì)心趨于穩(wěn)定,并將樣本集分為3部分 我們對每一個步驟都進行分析 step1:選擇K個點作為初始質(zhì)心 這一步首先要知道K的值,也就是說K是手動設(shè)置的,而不是像EM算法那樣自動聚類成n個簇 其次,如何選擇初始質(zhì)心 最簡單的方式無異于,隨機選取質(zhì)心了,然后多次運行,取效果最好的那個結(jié)果。這個方法,簡單但不見得有效,有很大的可能是得到局部最優(yōu)。 另一種復(fù)雜的方式是,隨機選取一個質(zhì)心,然后計算離這個質(zhì)心最遠的樣本點,對于每個后繼質(zhì)心都選取已經(jīng)選取過的質(zhì)心的最遠點。使用這種方式,可以確保質(zhì)心是隨機的,并且是散開的。 step2:repeat 將每個點指派到最近的質(zhì)心,形成K個簇 重新計算每個簇的質(zhì)心 until 質(zhì)心不在變化 如何定義最近的概念,對于歐式空間中的點,可以使用歐式空間,對于文檔可以用余弦相似性等等。對于給定的數(shù)據(jù),可能適應(yīng)與多種合適的鄰近性度量。
標(biāo)簽: K-means Java 數(shù)據(jù)挖掘 聚類 算法
上傳時間: 2018-11-27
上傳用戶:1159474180
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學(xué)生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學(xué)生信息 void print_student1(int);//顯示全部學(xué)生資料 void sort_student1(void);//排序總函數(shù) void menu(void);//菜單調(diào)度總函數(shù) int search_student2(int);//按學(xué)號查詢學(xué)生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數(shù) void delete_student2(int,int);//刪除學(xué)生信息 void delete_student1(void);//刪除總函數(shù) void change_student2(int);//修改學(xué)生資料 void change_student1(void);//修改總函數(shù) void input_score3(int);//統(tǒng)計成績 void input_score1(void);//統(tǒng)計成績總函數(shù) void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學(xué)生信息 void main() { menu(); } void save_student(student *s,int a)//保存學(xué)生信息 { FILE *fp; if((fp=fopen("d:\\學(xué)生信息.txt","wb"))==NULL) { printf("不能打開文件!\n"); } else { printf("保存信息到D盤\n"); fprintf(fp,"本班所有學(xué)生具體信息如下:\r\n"); fprintf(fp," 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系統(tǒng) { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統(tǒng)所能容納的最大學(xué)生數(shù)為%d人\n學(xué)生信息保存在D盤根目錄下,保存文件為“學(xué)生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統(tǒng)計成績總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統(tǒng)計成績 { printf("數(shù)學(xué)新成績:"); scanf("%f",&stu[a].sco.math); printf("英語新成績:"); scanf("%f",&stu[a].sco.english); printf("計算機新成績:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改學(xué)生資料 { printf("學(xué)號:%d----修改為:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改為:",stu[a].name); gets(stu[a].name); printf("數(shù)學(xué)成績:%.2f----修改為:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英語成績:%.2f----修改為:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("計算機成績:%.2f----修改為:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學(xué)生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//刪除總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否刪除此條記錄?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("記錄已刪除!\n"); } } void delete_student2(int a,int b)//刪除學(xué)生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查詢總函數(shù) { printf("1、按學(xué)號查詢\n2、按平均分最高查詢\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜單調(diào)度總函數(shù) { print_menu(); choosemenu(); } void sort_student1(void)//排序總函數(shù) { printf("1、按數(shù)學(xué)成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//顯示全部學(xué)生資料 { printf("本班所有學(xué)生具體信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//顯示學(xué)生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//顯示表頭 { printf(" 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學(xué)號是否重復(fù) { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學(xué)號代表的學(xué)生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!\n"); break; } case 2: { printf("請重新輸入學(xué)生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//輸出菜單 { printf("======歡迎來到學(xué)生信息管理系統(tǒng)======\n"); printf(" 1、輸入學(xué)生資料\n"); printf(" 2、刪除學(xué)生資料\n"); printf(" 3、查詢學(xué)生資料\n"); printf(" 4、修改學(xué)生資料\n"); printf(" 5、顯示學(xué)生資料\n"); printf(" 6、統(tǒng)計學(xué)生成績\n"); printf(" 7、排序?qū)W生成績\n"); printf(" 8、保存學(xué)生資料\n"); printf(" 9、獲取幫助信息\n"); printf(" 10、退出系統(tǒng)\n"); printf("====================================\n"); printf("請選擇:"); } void input_student2(void)//輸入總函數(shù) { char end; printf("請輸入學(xué)生信息(在最后一個學(xué)生信息錄入完成后以“/”結(jié)束錄入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//輸入學(xué)生信息 { printf("學(xué)號:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("數(shù)學(xué)成績:"); scanf("%f",&stu[a].sco.math); printf("英語成績:"); scanf("%f",&stu[a].sco.english); printf("計算機成績:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計算學(xué)生平均成績 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查詢并輸出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照數(shù)學(xué)成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英語成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照計算機成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照學(xué)號查找學(xué)生并輸出 { int num; int c; printf("請輸入要查詢的學(xué)號:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此學(xué)生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜單選擇 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 運行結(jié)果: 源文件下載地址: http://115.com/file/clnq138g#一個簡單的學(xué)生成績管理系統(tǒng).rar (請將此地址復(fù)制到瀏覽器地址欄中訪問下載頁面)
標(biāo)簽: 成績查詢系統(tǒng)
上傳時間: 2019-06-08
上傳用戶:啊的撒旦
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學(xué)生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學(xué)生信息 void print_student1(int);//顯示全部學(xué)生資料 void sort_student1(void);//排序總函數(shù) void menu(void);//菜單調(diào)度總函數(shù) int search_student2(int);//按學(xué)號查詢學(xué)生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數(shù) void delete_student2(int,int);//刪除學(xué)生信息 void delete_student1(void);//刪除總函數(shù) void change_student2(int);//修改學(xué)生資料 void change_student1(void);//修改總函數(shù) void input_score3(int);//統(tǒng)計成績 void input_score1(void);//統(tǒng)計成績總函數(shù) void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學(xué)生信息 void main() { menu(); } void save_student(student *s,int a)//保存學(xué)生信息 { FILE *fp; if((fp=fopen("d:\\學(xué)生信息.txt","wb"))==NULL) { printf("不能打開文件!\n"); } else { printf("保存信息到D盤\n"); fprintf(fp,"本班所有學(xué)生具體信息如下:\r\n"); fprintf(fp," 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系統(tǒng) { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統(tǒng)所能容納的最大學(xué)生數(shù)為%d人\n學(xué)生信息保存在D盤根目錄下,保存文件為“學(xué)生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統(tǒng)計成績總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統(tǒng)計成績 { printf("數(shù)學(xué)新成績:"); scanf("%f",&stu[a].sco.math); printf("英語新成績:"); scanf("%f",&stu[a].sco.english); printf("計算機新成績:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改學(xué)生資料 { printf("學(xué)號:%d----修改為:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改為:",stu[a].name); gets(stu[a].name); printf("數(shù)學(xué)成績:%.2f----修改為:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英語成績:%.2f----修改為:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("計算機成績:%.2f----修改為:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學(xué)生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//刪除總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否刪除此條記錄?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("記錄已刪除!\n"); } } void delete_student2(int a,int b)//刪除學(xué)生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查詢總函數(shù) { printf("1、按學(xué)號查詢\n2、按平均分最高查詢\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜單調(diào)度總函數(shù) { print_menu(); choosemenu(); } void sort_student1(void)//排序總函數(shù) { printf("1、按數(shù)學(xué)成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//顯示全部學(xué)生資料 { printf("本班所有學(xué)生具體信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//顯示學(xué)生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//顯示表頭 { printf(" 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學(xué)號是否重復(fù) { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學(xué)號代表的學(xué)生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!\n"); break; } case 2: { printf("請重新輸入學(xué)生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//輸出菜單 { printf("======歡迎來到學(xué)生信息管理系統(tǒng)======\n"); printf(" 1、輸入學(xué)生資料\n"); printf(" 2、刪除學(xué)生資料\n"); printf(" 3、查詢學(xué)生資料\n"); printf(" 4、修改學(xué)生資料\n"); printf(" 5、顯示學(xué)生資料\n"); printf(" 6、統(tǒng)計學(xué)生成績\n"); printf(" 7、排序?qū)W生成績\n"); printf(" 8、保存學(xué)生資料\n"); printf(" 9、獲取幫助信息\n"); printf(" 10、退出系統(tǒng)\n"); printf("====================================\n"); printf("請選擇:"); } void input_student2(void)//輸入總函數(shù) { char end; printf("請輸入學(xué)生信息(在最后一個學(xué)生信息錄入完成后以“/”結(jié)束錄入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//輸入學(xué)生信息 { printf("學(xué)號:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("數(shù)學(xué)成績:"); scanf("%f",&stu[a].sco.math); printf("英語成績:"); scanf("%f",&stu[a].sco.english); printf("計算機成績:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計算學(xué)生平均成績 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查詢并輸出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照數(shù)學(xué)成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英語成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照計算機成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成績排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照學(xué)號查找學(xué)生并輸出 { int num; int c; printf("請輸入要查詢的學(xué)號:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此學(xué)生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜單選擇 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 運行結(jié)果: 源文件下載地址: http://115.com/file/clnq138g#一個簡單的學(xué)生成績管理系統(tǒng).rar (請將此地址復(fù)制到瀏覽器地址欄中訪問下載頁面) #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學(xué)生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學(xué)生信息 void print_student1(int);//顯示全部學(xué)生資料 void sort_student1(void);//排序總函數(shù) void menu(void);//菜單調(diào)度總函數(shù) int search_student2(int);//按學(xué)號查詢學(xué)生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數(shù) void delete_student2(int,int);//刪除學(xué)生信息 void delete_student1(void);//刪除總函數(shù) void change_student2(int);//修改學(xué)生資料 void change_student1(void);//修改總函數(shù) void input_score3(int);//統(tǒng)計成績 void input_score1(void);//統(tǒng)計成績總函數(shù) void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學(xué)生信息 void main() { menu(); } void save_student(student *s,int a)//保存學(xué)生信息 { FILE *fp; if((fp=fopen("d:\\學(xué)生信息.txt","wb"))==NULL) { printf("不能打開文件!\n"); } else { printf("保存信息到D盤\n"); fprintf(fp,"本班所有學(xué)生具體信息如下:\r\n"); fprintf(fp," 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系統(tǒng) { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統(tǒng)所能容納的最大學(xué)生數(shù)為%d人\n學(xué)生信息保存在D盤根目錄下,保存文件為“學(xué)生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統(tǒng)計成績總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!
標(biāo)簽: c語言
上傳時間: 2019-06-09
上傳用戶:啊的撒旦
產(chǎn)品型號(封裝形式): VK3702DM VK3702TM VK3702OM——(SOP8 ) VK3706OM VK3706OM VK3706DM VK3708BM VK3710IM——(SOP16) 產(chǎn)品品牌:VINTEK/元泰 產(chǎn)品年份:新年份 深圳永嘉微電原廠直銷,大量現(xiàn)貨更有優(yōu)勢!讓您的生產(chǎn)高枕無憂。 聯(lián)系人:許碩 QQ:191 888 5898 TEL:188 9858 2398(微信) ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3702DM提供2個觸摸感應(yīng)按鍵,一對一直接輸出,提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3702TM提供 2 個觸摸感應(yīng)按鍵,一對一的 Toggle 模式輸出,提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn) ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3702OM提供 2 個觸摸感應(yīng)按鍵,一對一直接輸出,輸出為開漏(open drain)型態(tài),適合作 AD 鍵。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3706OM提供6個觸摸感應(yīng)按鍵,一對一直接輸出,輸出為開漏(open drain)型態(tài),適合作AD鍵。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3706DM提供6個觸摸感應(yīng)按鍵,一對一直接輸出,提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3708BM提供8個觸摸感應(yīng)按鍵,二進制(BCD)編碼輸出,具有一個按鍵承認輸出的顯示,按鍵後的資料會維持到下次按鍵,可先判斷按鍵承認的狀態(tài)。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3710IM提供10個觸摸感應(yīng)按鍵及兩線式串列界面,並有中斷輸出INT腳與MCU聯(lián)繫。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。特性上對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! 我們的優(yōu)勢 1:我司為VINTEK/臺灣元泰半導(dǎo)體股份有限公司/VINKA的授權(quán)大中華區(qū)代理商,產(chǎn)品渠道正宗,確保原裝,大量庫存現(xiàn)貨! 2:公司工程力量雄厚,真誠技術(shù)服務(wù)支持,搭配原廠服務(wù)各種應(yīng)用產(chǎn)品客戶。 3:好價格源自連接原廠直銷,你有量,我有價,確保原裝的好價格。 優(yōu)勢代理元泰VKD常用觸控按鍵IC,簡介如下: 標(biāo)準(zhǔn)觸控IC-電池供電系列 VKD223EB --- 工作電壓/電流:2.0V-5.5V/5uA-3V 感應(yīng)通道數(shù):1 通訊接口 更長響應(yīng)時間快速模式60mS,低功耗模式220ms 封裝:SOT23-6 VKD223B --- 工作電壓/電流:2.0V-5.5V/5uA-3V 感應(yīng)通道數(shù):1 通訊接口 更長響應(yīng)時間快速模式60mS,低功耗模式220ms 封裝:SOT23-6 VKD232C --- 工作電壓/電流: 2.4V-5.5V/2.5uA-3V 感應(yīng)通道數(shù):2封裝:SOT23-6 通訊接口:直接輸出,低電平有效 固定為多鍵輸出模式,內(nèi)建穩(wěn)壓電路 VKD233DH(更小體積2*2)---工作電壓/電流: 2.4V-5.5V/2.5uA-3V 1按鍵 封裝:DFN6L 通訊接口:直接輸出,鎖存(toggle)輸出 有效鍵更長時間檢測16S VKD233DB(推薦) --- 工作電壓/電流: 2.4V-5.5V/2.5uA-3V 1感應(yīng)按鍵 封裝:SOT23-6 通訊接口:直接輸出,鎖存(toggle)輸出 低功耗模式電流2.5uA-3V VKD233DH(推薦)---工作電壓/電流: 2.4V-5.5V/2.5uA-3V 1感應(yīng)按鍵 封裝:SOT23-6 通訊接口:直接輸出,鎖存(toggle)輸出 有效鍵更長時間檢測16S 標(biāo)準(zhǔn)觸控IC-多鍵觸摸按鈕系列 VKD104SB/N --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):4 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SSOP-16 VKD104BC --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):4 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SOP-16 VKD104BR --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):2 通訊接口:直接輸出, toggle輸出 封裝:SOP-8 VKD104QB --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):4 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:QFN-16 VKD1016B --- 工作電壓/電流:2.4V-5.5V/20uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):16-8 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SSOP-28 VKD1016L --- 工作電壓/電流:2.4V-5.5V/20uA-3V 感應(yīng)通道數(shù):16-8 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SSOP-28 (元泰原廠授權(quán) 原裝保障 工程技術(shù)支持 大量現(xiàn)貨庫存) 標(biāo)準(zhǔn)觸控IC-VK36系列 VK3601SS --- 工作電壓/電流:2.4V-5.5V/1mA-5.0V 感應(yīng)通道數(shù):1 通訊接口:1 INPUT/1PWM OUT 封裝:SOP-8 VK3601S --- 工作電壓/電流:2.4V-5.5V/4mA-3.3V 感應(yīng)通道數(shù):1 通訊接口:1 INPUT/1PWM OUT 封裝:SOP-8 VK3602XS --- 工作電壓/電流:2.4V-5.5V/ 60uA-3V 感應(yīng)通道數(shù):2 通訊接口:2對2 toggle輸出 封裝:SOP-8 VK3602K --- 工作電壓/電流:2.4V-5.5V/ 60uA-3V 感應(yīng)通道數(shù):2 通訊接口:2對2 toggle輸出 封裝:SOP-8 VK3606DM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1直接輸出 封裝:SOP-16 VK3606OM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1開漏輸出 封裝:SOP-16 VK3608BM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:BCD碼直接輸出 封裝:SOP-16 VK3610IM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:SCL/SDA/INT通訊口 封裝:SOP-16 標(biāo)準(zhǔn)觸控IC-VK37系列 VK3702DM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):2 通訊接口:1對1直接輸出 封裝:SOP-8 VK3702OM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):2 通訊接口:1對1開漏輸出 封裝:SOP-8 VK3702TM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):2 通訊接口:1對1toggle輸出 封裝:SOP-8 VK3706DM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1直接輸出 封裝:SOP-16 VK3706OM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1開漏輸出 封裝:SOP-16 VK3708BM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):8 通訊接口:BCD碼直接輸出 封裝:SOP-16 VK3710IM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):10 通訊接口:SCL/SDA/INT通訊口 封裝:SOP-16 標(biāo)準(zhǔn)觸控IC-VK38系列 VK3809IP --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):9 通訊接口:IIC/INT通訊口 封裝:SSOP-16 VK3813IP --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):13 通訊接口:IIC/INT通訊口 封裝:SSOP-20 VK3816IP --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):16 通訊接口:IIC/INT通訊口 封裝:SSOP-28 VK3816IP-A --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):16 通訊接口:IIC/INT通訊口 封裝:SSOP-28 以上介紹內(nèi)容為IC參數(shù)簡介,難免有錯漏,且相關(guān)IC型號眾多,未能一一收錄。歡迎聯(lián)系索取完整資料及樣品! 生意無論大小,做人首重誠信!本公司全體員工將既往開來,再接再厲。爭取為各位帶來更專業(yè)的技術(shù)支持,更優(yōu)質(zhì)的銷售服務(wù),更高性價比的好產(chǎn)品.竭誠希望能與各位客戶朋友深入溝通,攜手共進,共同成長,合作共贏!謝謝。
標(biāo)簽: VK 3708 3710 BM IM 多按鍵 抗干擾 防水 操作 觸控
上傳時間: 2019-07-10
上傳用戶:szqxw1688
1. 日語假名及其發(fā)音一覽 平 片 羅 平 片 羅 平 片 羅 平 片 羅 平 片 羅 假 假 馬 假 假 馬 假 假 馬 假 假 馬 假 假 馬 音 音 音 音 音 ______________________________________________________________________________ あ ア a い イ i う ウ u え エ e お オ o か カ ka き キ ki く ク ku け ケ ke こ コ ko さ サ sa し シ si/shi す ス su せ セ se そ ソ so た タ ta ち チ chi つ ツ tsu て テ te と ト to な ナ na に ニ ni ぬ ヌ nu ね ネ ne の ノ no は ハ ha ひ ヒ hi ふ フ fu へ ヘ he ほ ホ ho ま マ ma み ミ mi む ム mu め メ me も モ mo や ヤ ya ゆ ユ yu よ ヨ yo ら ラ ra り リ ri る ル ru れ レ re ろ ロ ro わ ワ wa を ヲ o/wo ん ン n が ガ ga ぎ ギ gi ぐ グ gu げ ゲ ge ご ゴ go ざ ザ za じ ジ zi/ji ず ズ zu ぜ ゼ ze ぞ ゾ zo だ ダ da ぢ ヂ ji/di づ ヅ zu/du で デ de ど ド do ば バ ba び ビ bi ぶ ブ bu べ ベ be ぼ ボ bo ぱ パ pa ぴ ピ pi ぷ プ pu ぺ ペ pe ぽ ポ po きゃ キャ kya きゅ キュ kyu きょ キョ kyo しゃ シャ sya しゅ シュ syu しょ ショ syo ちゃ チャ cya ちゅ チュ cyu ちょ チョ cyo にゃ ニャ nya にゅ ニュ nyu にょ ニョ nyo ひゃ ヒャ hya ひゅ ヒュ hyu ひょ ヒョ hyo みゃ ミャ mya みゅ ミュ myu みょ ミョ myo りゃ リャ rya りゅ リュ ryu りょ リョ ryo ぎゃ ギャ gya ぎゅ ギュ gyu ぎょ ギョ gyo じゃ ジャ zya/ja じゅ ジュ yu/ju じょ ジョzyo/jo びゃ ビャ bya びゅ ビュ byu びょ ビョ byo ぴゃ ピャ pya ぴゅ ピュ pyu ぴょ ピョ pyo
標(biāo)簽: 日語
上傳時間: 2019-07-19
上傳用戶:sxc1997
已知一個整數(shù)序列A=(a0,a1,…,an-1),其中0≤ai<n(0≤i<n)。若存在ap1=ap2=…=apm=x且m>n/2(0≤pk<n,1≤k≤m),則稱x為A的主元素。例如A= ( 0,5,5,3,5,7,5,5 ),則5為主元素;又如A= ( 0,5,5,3,5,1,5,7 ),則A中沒有主元素。 假設(shè)A中的n個元素保存在一個一維數(shù)組中,請設(shè)計一個盡可能高效的算法,找出A的主元素。若存在主元素,則輸出該元素;否則輸出-1。
標(biāo)簽: 元素 ap1 ap2 apm an 整數(shù) 序列
上傳時間: 2020-03-04
上傳用戶:霖1234
function y=lagr(x0,y0,x) %x0,y0為節(jié)點 %x是插值點 n=length(x0); m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end
標(biāo)簽: lagr
上傳時間: 2020-06-09
上傳用戶:shiyc2020
#include<iostream> using namespace std; int s=0; int prime(int x){ int i,p=1; for(i=2;i<=x/2;i++){ if(x%i==0){ p=0; break; } } if(p!=0){ cout<<x<< " "; s++; } } int main(){ for (int k=5;k<=100;k++){ prime(k); if(s%5==0) cout<<'\n'; } return 0; }
標(biāo)簽: C++
上傳時間: 2020-06-30
上傳用戶:1274636550
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1