有没有会C语言的大神帮忙做一下这几道题

 

用到一些函数,变量,和循环即可,可以提供部分代码

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