#include
int abstract(char s[],int frica[][2]) {
/**********Program**********/
/********** End **********/ }
void sort(int frica[][2],int n) {
/**********Program**********/
/********** End **********/ }
int main() {
char s[]=\ int frica[10][2],i,n; FILE *fp;
if((fp=fopen(\ {
printf(\ exit(0); }
n=abstract(s,frica); sort(frica,n); for(i=0;i
printf(\ fprintf(fp,\ }
printf(\ fprintf(fp,\ fclose(fp); getch(); return 0; }
答案:int i,k,sum; sum=0;
for(k=i=0;s[i];i++) {
if(isdigit(s[i])) {
sum=sum*10+s[i]-'0';
if(s[i+1]=='/' || s[i+1]==' ') {
frica[k/2][k%2]=sum; k++; sum=0; } } }
return k/2;
int i,j,t;
for(i=0;i
if(frica[j][0]*frica[j+1][1]>frica[j+1][0]*frica[j][1]) {
t=frica[j][0];frica[j][0]=frica[j+1][0];frica[j+1][0]=t; t=frica[j][1];frica[j][1]=frica[j+1][1];frica[j+1][1]=t; } }
第3题 (30.0分) 题号:545 难度:中 第1章 /*------------------------------------------------------- 【程序设计】
---------------------------------------------------------
主函数main()的char s[]中为测试数据,保存了形如 \字符 串。将字符串中类似\这样的子串视为一个学生的语文 和数学成绩,将其转换为整数59和63,其中59为语文成绩, 63为数学成绩。将这两个成绩分别保存在二维数组score的第 一列和第二列。并根据总成绩和语文成绩的大小,对score数 组进行降序排序。
编写函数:
1.编写函数int abstract(char s[],int score[][2]),将s 字符串中类似\这样的子串转换成两个整数,分别存放 在score数组第一列和第二列,函数返回这样的子串个数(即 学生的人数)。
2.编写函数void sort(int score[][2],int n),对score数 组中n个成绩进行降序排序,排序依据是:先按总成绩降序排 序,如总成绩相同,则再按语文成绩降序排序。
--------------------------------------------------------- 注意:请勿改动主函数main()中的任何语句。
---------------------------------------------------------*/
#include
int abstract(char s[],int score[][2]) {
/**********Program**********/
/********** End **********/ }
void sort(int score[][2],int n) {
/**********Program**********/
/********** End **********/ }
int main(){
char s[]=\ int score[10][2],i,n; FILE *fp;
if((fp=fopen(\ {
printf(\ exit(0);
}
n=abstract(s,score); sort(score,n); for(i=0;i
printf(\ fprintf(fp,\ }
printf(\ fprintf(fp,\ fclose(fp); return 0; }
答案:int i,k,sum; for(k=i=0;s[i];i++) {
if(isdigit(s[i])) {
sum=0;
for(;isdigit(s[i]);i++) sum=sum*10+s[i]-'0'; if(s[i]==',') score[k][0]=sum; else
score[k++][1]=sum; } }
return k;
int i,j,t; int s1,s2;
for(i=0;i
s1=score[j][0]+score[j][1]; s2=score[j+1][0]+score[j+1][1];
if(s1
t=score[j][0];score[j][0]=score[j+1][0];score[j+1][0]=t; t=score[j][1];score[j][1]=score[j+1][1];score[j+1][1]=t; }