中易网

字符串指针数组问题,编一个程序,谢谢

答案:1  悬赏:80  
解决时间 2021-04-28 08:03
  • 提问者网友:虛偽丶靜
  • 2021-04-27 18:54

这是我的一个作业:

 

定义两个字符串指针数组,使它们分别指向你和你的四位高中同学的12位学号(你的学号+501~504)和姓名,分别从小到大按学号和姓名排序并输出(原始数据应无序,每次都输出学号和姓名)

 

五个人名暂用 甲乙丙丁戊  代替  

学号分别是  201011110001

                   201011110502

                   201011110503

                   201011110504

                   201011110505

  

请帮我做一下    谢谢  

我指针这里学的不好  目前还在数组那里纠结   所以在此谢过

 

急需

最佳答案
  • 二级知识专家网友:你好陌生人
  • 2021-04-27 19:04

#include <stdio.h>
#include <string>
void swap(char** src, char** dest)//交换值
{
 char* tmp = *src;
 *src = *dest;    
 *dest = tmp;   
}


void main()
{
 char* cID[5] = {"201011110001", "201011110505", "201011110503", "201011110504", "201011110502"};
 char* cName[5] = {"甲", "乙", "丙", "丁", "戊"};
 
 printf("排序之前: \n");
 for (int i=0; i<5; i++)
 {
  printf("%s  %s\n", cName[i], cID[i]);
 }
 
 for (i=0; i<5; i++)
 {
  for (int j=i+1; j<5; j++)
  {
   if (strcmp( (const char *)cID[i], (const char *)cID[j]) > 0)
   {
    swap(&cID[i], &cID[j]);
    swap(&cName[i], &cName[j]);
   }
  }
 }
 
 printf("学号排序: \n");
 for (i=0; i<5; i++)
 {
  printf("%s  %s\n", cName[i], cID[i]);
 }
 
 for (i=0; i<5; i++)
 {
  for (int j=i+1; j<5; j++)
  {
   if (strcmp( (const char *)cName[i], (const char *)cName[j]) > 0)
   {
    swap(&cID[i], &cID[j]);
    swap(&cName[i], &cName[j]);
   }
  }
 }


 printf("姓名排序: \n");
 for (i=0; i<5; i++)
 {
  printf("%s  %s\n", cName[i], cID[i]);
 }
}


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息