用到一些函数,变量,和循环即可,可以提供部分代码
void fun1(int *a,int n) //第一题
{
int i,j,t;
for (i=0; i<n-1; ++i) //比较n-1轮
{
for (j=0; j<n-1-i; ++j) //每轮比较n-1-i次,
{
if (a[j] < a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
typedef struct _student
{
int id;
float score;
}student;
void fun2(student *pStu,int n) //第二题
{
int i,j;
student stu;
for (i=0; i<n-1; ++i) //比较n-1轮
{
for (j=0; j<n-1-i; ++j) //每轮比较n-1-i次,
{
if (pStu[j].score < pStu[j+1].score)
{
stu = pStu[j];
pStu[j] = pStu[j+1];
pStu[j+1] = stu;
}
}
}
}
int fun3(int a[3][4])
{
int sum = 0;
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
{
if(i==0 || j==0 || i==2 || j==3)
sum += a[i][j];
}
return sum;
}
int main()
{
int a[10];
student stu[10];
int b[3][4];
int i,j,sum = 0;
printf("输入10个整数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun1(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
//
printf("输入10个学生的学号和成绩(学号 成绩)\n");
for(i=0;i<10;i++)
scanf("%d %f",&stu[i].id,&stu[i].score);
fun2(stu,10);
for(i=0;i<10;i++)
printf("%d %f\n",stu[i].id,stu[i].score);
//
printf("输入3*4个整数\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&b[i][j]);
sum = fun3(b);
printf("靠边元素和为:%d\n",sum);
}
题目都不难哦,就是对一维数组二维数组的基本操作,加上循环,就能完成啦。
两个循环加几个判断就可以了
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632