中易网

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

答案:1  悬赏:80  
解决时间 2021-04-28 08:03

这是我的一个作业:

 

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

 

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

学号分别是  201011110001

                   201011110502

                   201011110503

                   201011110504

                   201011110505

  

请帮我做一下    谢谢  

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

 

急需

最佳答案

#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]);
 }
}


我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有胃病的人能不能多吃肉
求、幼儿园中班舞蹈
红黑碳王7.6 正面粘蝴蝶的那款套胶比较好?
劲舞团怎么用6.5版本紫光弄房间的名字?
洪江市塘湾中心卫生院在什么地方啊,我要过去
一个女孩爱上她哥哥,哥哥是奶奶捡来的,哥哥
张翰都唱过什么歌
人生就象卫生纸、没事尽量少扯
到低是人控制大脑还是脑控制人
ew是那家银行?我的征信报告里出现EW这家商业
中逵国际钓具连锁:我是一位钓友,想加盟,有
头发像染过似的,而且总脱发短发,怎么办啊
谁会玩华夏给我亮亮图标哇
抢车位好卡 贴条不成功
爱我宝贝母婴生活馆在什么地方啊,我要过去处
推荐资讯
求盗贼各部位FM
PSP2000要怎么看电子书啊???
太原市中考体测有什么变动?
国产suv哪个质量好
自我保护作文的开头与结尾
南宁市旧的营业执照是否也要换成三证合一
a very silent night请问知道这首歌能从那里
上海世博什么时候结束?
香水可以带上飞机吗?
中国有几个小数名族?
微信理财通和支付宝余额宝哪个好
首创空港国际中心25号楼这个地址在什么地方,
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?