这是我的一个作业:
定义两个字符串指针数组,使它们分别指向你和你的四位高中同学的12位学号(你的学号+501~504)和姓名,分别从小到大按学号和姓名排序并输出(原始数据应无序,每次都输出学号和姓名)
五个人名暂用 甲乙丙丁戊 代替
学号分别是 201011110001
201011110502
201011110503
201011110504
201011110505
请帮我做一下 谢谢
我指针这里学的不好 目前还在数组那里纠结 所以在此谢过
急需
这是我的一个作业:
定义两个字符串指针数组,使它们分别指向你和你的四位高中同学的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]);
}
}