c语言,输入学生成绩和名字,排序时怎么才能让名字跟着成绩走?
一开始就建两个数组,一个放成绩,一个放名字,如:charname[100][20];floatscore[100];以后输入、输出、排序等等操作,都把name和score看做不可分离的一组(类似于同一个i的结构体变量),让name[i]和score[i]成为一对!排序时,当score[k]移动到m位置时,对应的name[k]也要同时移动的m位置。这样,名字就跟着成绩走了。
1到25的数字,如何通过C语言实现随机排列?
首先不管是不是通过编译。
做到随即排列,需要用到随机数产生函数。
#include <stdio.h>
#include <time.h>
main()
{
int i;
int cp1[10];
clrscr();
srand((unsigned)time(NULL)); /*随机数发生器,时间作为种子 */
for(i=0;i<10;i++)
{
cp1[i]=rand()%100+1;/*rand产生的随机数字*/
}
textcolor(12);
for(i=0;i<10;i++)
{
printf("\n");
cprintf("%d",cp1[i]);
}
getch();
}
以上是打印1到100的随机数字。
你说的要随机排列25个数字。
必须要产生25个随机数字。处理方法有很多,可以采用让随机数产生为1~25的数字,但是要保证每个数字不一样。不能有重复,这个可以通过比较来完成。然后可以一一对应输出,或者直接输出产生的随机数也可以。另外一种方法是允许有重复,但是必须给每个数字1~25和产生的25个随机数字进行一一对应编号,然后首先按照随机数对应的输出,如果遇到相同的随机数,就随机数先后顺序排下来对应输出。方法有很多,自己可以思考一下。
首先,使用C语言中的rand()函数生成一个介于1到25之间的随机数。
然后,将生成的随机数与一个已经排好序的数组中的元素进行交换,以实现随机排列。交换的次数可以根据需要进行多次,以增加随机性。
这种方法的原理是通过将已排序的数组中的元素随机交换,从而达到随机排列的效果。
使用rand()函数时,可以使用srand()函数设置随机数的种子,以确保每次运行程序时得到不同的随机序列。
这种方法可以用于实现任意长度的随机排列。
随机排列的数字是可以通过C语言实现的
在C语言中,可以通过标准库中的rand函数来生成随机数,可以利用一个存储数组的方式进行随机排列,可以使用洗牌算法或者交换法来进行
以下是洗牌算法的实现步骤:定义一个长度为的数组,存储的数字
循环遍历数组,每次循环时,随机生成一个整数,将该整数作为数组下标,与当前循环的数组元素进行交换
循环次后,数组中的元素就随机排列了
最后将随机排列的数组输出即可