#include
#include
struct student{ /* 學生結構體 /
int num;
char name[20];
char optional[2];
union{
float mark; / 百分制分數成員mark /
char grade; / 五級制等級成員grade /
}score; / 成績共用體 /
};
void main()
{
struct student stu[50];
int i,n; / n:學生人數 /
//在兩條星線間填入相應代碼,定義相當的計數器變量並置初值
/*******************************************************************/
int c[5]={0,0,0,0,0},count=0;
float avg=0;
int bxrs=0;
/********************************************************************/
/* 輸入n個學生成績記錄,統計必修學生人數和總成績 */
printf("請輸入學生人數:");
scanf("%d",&n);
printf("請依次輸入%d個學生成績記錄:\n",n);
for(i=0;i<n;i++){
printf(">>%d:學號 姓名 選課類型(T-選修,F-必修):",i+1);
scanf("%d%s%s",&stu[i].num,stu[i].name,stu[i].optional);
getchar(); /* 讀回車符 */
if(strcmp(stu[i].optional,"T")==0){
printf(">>成績等級:");
scanf("%c",&stu[i].score.grade);
}
else{
printf(">>成績分數:");
scanf("%f",&stu[i].score.mark);
//在兩條星線間填入相應代碼,統計必修學生人數和總成績
/********************************************************************/
bxrs++;
avg+=stu[i].score.mark;
/********************************************************************/
}
}
avg=avg/bxrs; /* 計算必修學生平均成績 */
/* 分類統計選修學生各等級人數和必修學生超平均分人數 */
for(i=0;i<n;i++){
//在兩條星線間填入代碼, 分類統計選修學生各等級人數和必修學生超平均分人數
/**********************************************************************/
if(strcmp(stu[i].optional,"T")==0){
switch(stu[i].score.grade){
case 'A':c[0]++;break;
case 'B':c[1]++;break;
case 'C':c[2]++;break;
case 'D':c[3]++;break;
case 'E':c[4]++;break;
}
}
else{
if(stu[i].score.mark>avg)count++;
}
/**********************************************************************/
}
/* 輸出統計結果 */
printf("選修學生:A=%d,B=%d,C=%d,D=%d,E=%d\n",c[0],c[1],c[2],c[3],c[4]);
printf("必修學生:平均成績=%.2f,超過平均成績學生人數=%d\n",avg,count);
}
他是這樣報錯的:
1>------ 已啟動生成: 項目: ConsoleApplication1, 配置: Debug Win32 ------
1> proj10_2.cpp
1>e:\c語言!!!\實驗10 共用體與枚舉\第2題\proj10_2.cpp(25): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 參見“scanf”的聲明
1>e:\c語言!!!\實驗10 共用體與枚舉\第2題\proj10_2.cpp(29): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 參見“scanf”的聲明
1>e:\c語言!!!\實驗10 共用體與枚舉\第2題\proj10_2.cpp(33): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 參見“scanf”的聲明
1>e:\c語言!!!\實驗10 共用體與枚舉\第2題\proj10_2.cpp(37): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 參見“scanf”的聲明
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
在你新建win32項目時,把安全開發生命周期檢查,的,勾去掉