當前位置:首頁 » 編程軟體 » 編程實踐題

編程實踐題

發布時間: 2023-05-13 15:04:15

c語言編程

要輸入的分數太多,我懶得手數,用2位隨機數代替手輸入,輸入函數我單獨寫了,你需要調用就行了,詳細看備注。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#definestuNum15//學生人數
#definescNum7//模塊數
typedefstructstu//定義學生數據結構
{
intsid;//學生ID
intsc[scNum];//對應7個模塊成績
intsum;//總成績
}STU;
voidinsertSTU(STU*stu);//輸入15個學生的信息
voidinsertTest(STU*stu);//測試,用隨機數代替輸入,我懶得輸入那麼多成績,你要手輸,調用insertSTU替換該函數
voidprintfSTU(STU*stu);//按輸入順序列印15名學生7模塊成績及每個模塊前三名的成績
intmain()
{
STUstu[stuNum];//定義15個學生
//inti,j,sc;
srand(time(NULL));
insertTest(stu);//想手動輸入這里改成insertSTU(stu)
printfSTU(stu);
return0;
}
voidprintfSTU(STU*stu)//按輸入順序列印15名學生7模塊成績及每個模塊前三名信息及總分前三名信息
{
inti,j,k,sc;
STU*max[3],*sum[3],newstu;//max對應7個模塊前3的學生結構指針sum對應總分前3學生結構指針
for(i=0;i<stuNum;i++)
{
printf("編號%02d的學生7模塊成績及總分分別為:",stu[i].sid);
for(j=0;j<scNum;j++)
{
sc=stu[i].sc[j];
printf("%02d",sc);
}
printf("%d ",stu[i].sum);
}


for(j=0;j<scNum;j++)
{
for(k=0;k<scNum;k++)
{
newstu.sc[k]=0;
newstu.sum=0;
}

max[0]=max[1]=max[2]=&newstu;
for(i=0;i<stuNum;i++)
{
if(stu[i].sc[j]>max[0]->sc[j])
max[0]=&(stu[i]);
elseif(stu[i].sc[j]>max[1]->sc[j])
max[1]=&(stu[i]);
elseif(stu[i].sc[j]>max[2]->sc[j])
max[2]=&(stu[i]);
}
printf("模塊%02d前3名分別為:編號:%02d分數:%02d編號:%02d分數:%02d編號:%02d分數:%02d ",j+1,max[0]->sid,max[0]->sc[j],max[1]->sid,max[1]->sc[j],max[2]->sid,max[2]->sc[j]);
}

sum[0]=sum[1]=sum[2]=&newstu;
for(i=0;i<stuNum;i++)
{
if(stu[i].sum>sum[0]->sum)
sum[0]=&(stu[i]);
elseif(stu[i].sum>sum[1]->sum)
sum[1]=&(stu[i]);
elseif(stu[i].sum>sum[2]->sum)
sum[2]=&(stu[i]);
}
printf("總分前3名分別為:編號:%02d總分:%02d編號:%02d總分:%02d編號:%02d總分:%02d ",sum[0]->sid,sum[0]->sum,sum[1]->sid,sum[1]->sum,sum[2]->sid,sum[2]->sum);

}


voidinsertSTU(STU*stu)//輸入15個學生的信息
{
inti,j,sc;
for(i=0;i<stuNum;i++)
{
stu[i].sid=i+1;
stu[i].sum=0;
printf("輸入編號%d的學生的7個模塊成績:",i+1);
for(j=0;j<scNum;j++)
{
//scanf("%d",&sc);//我懶得輸入那麼多成績,就用隨機數代替,你要輸入把這句恢復
sc=(int)(rand()%100);//用隨即2位數代替輸入,不需要就注釋掉
stu[i].sc[j]=sc;
stu[i].sum=stu[i].sum+sc;
}
}
}
voidinsertTest(STU*stu)//測試用代替輸入
{
inti,j,sc;
for(i=0;i<stuNum;i++)
{
stu[i].sid=i+1;
stu[i].sum=0;
for(j=0;j<scNum;j++)
{
sc=(int)(rand()%100);
stu[i].sc[j]=sc;
stu[i].sum=stu[i].sum+sc;
}
}
}

⑵ 問幾個c語言的編程題

所有程序在win-tc和Dev-c++下試驗通過,代碼簡練。
第一題:
/* 編一個程序,輸入n個互不相等的整數存於數組中,並輸出。程序如發現輸入的數據已輸入過,則要求重新輸入。要求用指針實現。 */
#include <stdio.h>
#include <malloc.h>
int main( )
{
int i=0,j,k,n,flag,*p;
printf("Please input number of the digits:\n");
scanf("%d",&n);
p=(int *)malloc(n*sizeof(int));
printf("Please input %d digits one by one:\n",n);
do
{ flag=0;
scanf("%d",p+i);
for(j=0;j<i;j++)
{ for(k=j+1;k<i+1;k++)
if(*(p+k)==*(p+j))
{ printf("Input repetition! Please input again!\n");
flag=1;
break; /*如有重復立即退出該層循環,提高判斷速度*/
}
if(flag==1)
break; /*如有重復立即退出該層循環,提高判斷速度*/
}
if(flag==0)
i++;
}while(i<n);
printf("The input digits are:\n",n);
for(i=0;i<n;i++)
printf("%d\n",*(p+i));
system("pause");
return 0;
}

第二題:
# include <stdio.h>
# include <string.h>
# define MAX 81 /* 輸入字元串不超過80字元,可更改 */
int cycle(char *s)
{
char *h,*t;
for(h=s,t=s+strlen(s)-1;t>h;h++,t--)
if(*h!=*t) break;
return t<=h;
}
int main()
{
char s[MAX];
system("cls");
while(1) /* 輸入應不包括字元@,輸入字元串的第一個字元為@,退出 */
{
printf("Please input the string:(input '@' to quit)\n");
scanf("%s",s);
if(s[0]=='@')
break;
if(cycle(s))
printf("%s is a cycle string.\n",s);
else
printf("%s is not a cycle string.\n",s);
}
return 0;
}

第三題:
# include <stdio.h>
# define N 20 /*設定人數為20,實際請更改*/
struct workerdent
{ char num[11]; /*工號超過10位時請加長*/
char name[13]; /*實際請更改,名字不超過12字元,一個漢字2個字元*/
int age;
int page;
}worker[N];

int main()
{
int i;

/*以下為輸入*/
for(i=0;i<N;i++)
{printf("\nInput work number of worker %d:\n",i+1);
printf("NO.:");
scanf("%s",worker[i].num);
printf("name:");
scanf("%s",worker[i].name);
printf("age:");
scanf("%d",&worker[i].age);
printf("page:");
scanf("%d",&worker[i].page);
}

/*以下為輸出*/
printf("NO. name age page\n");
for(i=0;i<N;i++)
{ printf("%-11s%-13s%-5d%-5d\n",worker[i].num,worker[i].name,worker[i].age,worker[i].page);
}
system("pause");
return 0;
}

熱點內容
plsql異常處理 發布:2024-05-20 07:54:47 瀏覽:541
dreamweaver上傳網頁 發布:2024-05-20 07:51:24 瀏覽:461
拍攝車的分鏡頭腳本 發布:2024-05-20 07:50:15 瀏覽:136
mg名爵最高配置是哪個 發布:2024-05-20 07:45:11 瀏覽:375
輔助官網源碼 發布:2024-05-20 07:31:48 瀏覽:865
androidbutton的屬性 發布:2024-05-20 07:18:58 瀏覽:636
查找重復欄位的sql 發布:2024-05-20 07:18:17 瀏覽:302
我的世界創造房子伺服器 發布:2024-05-20 06:48:36 瀏覽:818
小米筆記本存儲不夠 發布:2024-05-20 06:32:53 瀏覽:784
dirt5需要什麼配置 發布:2024-05-20 06:02:58 瀏覽:543