c语言中二维数组如何交换行?

如一矩阵nArry={{1,2,3,4}{2,3,4,5}{3,4,5,6}{4,5,6,7}};如何交换其中两行比如将第一行和第四行交换变为{{4,5,6,7}{2,3... 如一矩阵nArry= {{1,2,3,4}{2,3,4,5}{3,4,5,6}{4,5,6,7}}; 如何交换其中两行 比如将第一行和第四行交换变为 {{4,5,6,7}{2,3,4,5}{3,4,5,6}{1,2,3,4}}; 如何用C语言来实现,是否可以用交换地址的方法实现? 谢谢~~ 展开
 我来答
a1012144015
2015-05-16 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1370万
展开全部
可以的,需要先定义相同类型的临时整型变量或地址指针变量!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-05-06
展开全部
/*
完成以下程序,实现学生的简单管理系统,
学生信息包括姓名,成绩,年龄,
学生信息录入,按照名字查询,
按照成绩从小到大排序,打印所有学生成绩,
要求不考虑非法输入情况,系统最多录入30个学生信息,每个学生名字长度不超过30.
void readInfo(char name[][30], float score[], int age[], int m);
void printStudentsArray(char name[][30], float score[], int age[], int m);
void sortByScore(char name[][30], float score[], int age[], int m);
void searchStudent(char name[][30], float score[], int age[], int m);
int main(int argc, char const *argv[])
{
    char name[30][30];
    float score[30];
    int age[30];
    int m;
//输入提示信息
    "Input m:";
    scanf("%d",);
    readInfo(...);
    printStudentsArray(...);
    searchStudent(...);
    sortByScore(...);
    printStudentsArray(...);
    return 0;
}
//学生信息的录入
void readInfo(...)
{
     "请输入新增学生的名字\n"
       scanf("%s");
      "请输入新增学生的成绩\n");
        scanf("%f");
       "请输入新增学生的年龄\n";
        scanf("%d",);
}
//打印学生的姓名,成绩,年龄
void printStudentsArray(...)
{
    "学生系统中一共有%d位学生信息\n";
     "姓名:%s,成绩:%f,年龄:%d\n";
}
//排序
void sortByScore(......)
{
}
//根据名字查询学生
void searchStudent(......)
{
    "请输入要查询的学生姓名\n";
    scanf("%s");
    //如果没有找到输出格式为
    "没有找到该学生信息\n"
   //如果找到输出格式为
    您要查询的学生信息是 姓名:%s,成绩:%f,年龄:%d\n
}
程序运行示例
Input m:3
请输入新增学生的名字
a
请输入新增学生的成绩
78
请输入新增学生的年龄
19
请输入新增学生的名字
b
请输入新增学生的成绩
90
请输入新增学生的年龄
20
请输入新增学生的名字
c
请输入新增学生的成绩
60
请输入新增学生的年龄
18
学生系统中一共有3位学生信息
姓名:a,成绩:78.000000,年龄:19
姓名:b,成绩:90.000000,年龄:20
姓名:c,成绩:60.000000,年龄:18
请输入要查询的学生姓名
c
您要查询的学生信息是 姓名:c,成绩:60.000000,年龄:18
学生系统中一共有3位学生信息
姓名:c,成绩:60.000000,年龄:18
姓名:a,成绩:78.000000,年龄:19
姓名:b,成绩:90.000000,年龄:20
*/
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
void readInfo(char name[][30], float score[], int age[], int m);
void printStudentsArray(char name[][30], float score[], int age[], int m);
void sortByScore(char name[][30], float score[], int age[], int m);
void searchStudent(char name[][30], float score[], int age[], int m);
int main(int argc, char const *argv[])
{
    char name[30][30];      //名字
    float score[30];        //成绩
    int age[30];            //年纪
    int m;                  //确定学生人数
    printf("Input m:");
    scanf("%d",&m);
    readInfo(name,score,age,m);
    printStudentsArray(name,score,age,m);
    searchStudent(name,score,age,m);
    sortByScore(name,score,age,m);
    printStudentsArray(name,score,age,m);
    return 0;
}
//学生信息的录入
void readInfo(char name[][30], float score[], int age[], int m)
{
    int i;
    for(i=0;i<m;i++)
     {
         printf("请输入新增学生的名字\n");
            scanf("%s",&name[i]);
      printf("请输入新增学生的成绩\n");
        scanf("%f",&score[i]);
       printf("请输入新增学生的年龄\n");
        scanf("%d",&age[i]);
     }
}
//打印学生的姓名,成绩,年龄
void printStudentsArray(char name[][30], float score[], int age[], int m)
{
    int i;
    printf("学生系统中一共有%d位学生信息\n",m);
    for(i = 0; i < m; i++)
    {
        printf("姓名:%s,成绩:%f,年龄:%d\n",name[i],score[i],age[i]);
    }
}
//根据名字查询学生
void searchStudent(char name[][30], float score[], int age[], int m)
{
    int i;
    char sear;
    printf("请输入要查询的学生姓名\n");
    scanf("%s",&sear);
    for(i = 0;i<m;i++)
    {
        //如果没有找到输出格式为
        if(sear != name[i]   &&  i == m-1)
            printf("没有找到该学生信息\n");
   //如果找到输出格式为
        if(sear == name[i])
        {
            printf("您要查询的学生信息是 姓名:%s,成绩:%f,年龄:%d\n",name[i],score[i],age[i]);
            break;
        }
    }
}
//按成绩从小到大排序
void sortByScore(char name[][30], float score[], int age[], int m)
{
    int i,j,k;
    float temp2;
    char temp1;
    int temp3;
    for(i = 0;i<m-1;i++)
    {
        k = i;
        for(j = i+1;j<m;j++)
        {
            if(score[k]> score[j])
            {
                k = j;
            }
        }
        if(k!= i)
        {
            //交换姓名
            temp1   = name[k];
            name[k] = name[i];
            name[i] = temp1;
            //交换成绩
            temp2 = score[k];
            score[k] = score[i];
            score[i] = temp2;
            //交换年纪
            temp3 = age[k];
            age[k] = age[i];
            age[i] = temp3;
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式