C语言把变量输入到数组排序?

C语言能不能把有数值的变量输入到数组然后排序打印后输出变量的名字?

C语言本身是不能的,因为每一个变量的名字在被编译完后都变成了对应的内存地址,也就是说,编译后,程序是不知道这个变量叫什么名字的,因此如果要实现输出变量的名字,那么就必须用一个数组来装这些变量的名字。如图所示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-20
C语言是可以把变量输入到数组排序的,可以定义一个结构体,结构体中包含,变量的名字和变量的值,然后根据变量的值进行结构体数组的排序,排序完成以后就可以输出排序以后的结果。本回答被网友采纳
第2个回答  2021-12-03
C语言数组之排序 输入某门课的成绩,按编程将分数从高到低顺序进行排序输出 第一种:采用交换法排序,也称作冒泡排序。
第3个回答  2021-10-20
需要定义变量对应的名字这个字符串变量。
例如:
struct structData{
char name[100];
int value;

};
定义数组 struct structData data[10];本回答被提问者采纳
第4个回答  2022-06-28
#include <stdio.h>

void sort(int *p,int n)
{
int i,j,tmp;
int *q;
int *s;

for(i=0; i<(n-1); i++) //排序
{
q = p+1;
s = p;
for(j=0; j<(n-1-i); j++)
{
if(*s > *q)
{
tmp = *s;
*s = *q;
*q = tmp;
}
s++;
q++;
}
}
}

int main()
{
int i;
int a[3],b[4];

printf("input three integer for the first array:\n");

for(i=0; i<3; i++)
scanf("%d",&a[i]);

printf("input four integer for the second array:\n");

for(i=0; i<4; i++)
scanf("%d",&b[i]);

sort(a,3);
sort(b,4);

printf("after sort(the first array):");
for(i=0; i<3; i++)
printf("%d ",a[i]);
printf("\n");

printf("after sort(the second array):");
for(i=0; i<4; i++)
printf("%d ",b[i]);
printf("\n");

return 0;
}

按照题目要求写的,编译无误,调试通过没有问题。。。。
相似回答