帮我用c语言写一个:对数组A中的N(1<N<=100)个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组A中元素的顺序,且相同的整数要具有相同的编号。例如数组是:A[N]={5,3,4,7,3,5,6},则输出为: 3,1,2,5,1,3,4。
时间: 2023-05-17 12:07:01 浏览: 57
以下是对数组A中的N个整数从小到大进行连续编号的C语言代码:
```c
#include <stdio.h>
int main() {
int n, a[100], b[100], i, j, count;
printf("请输入数组长度n:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
b[i] = -1; // 初始化编号为-1
}
count = 0;
for (i = 0; i < n; i++) {
if (b[i] == -1) { // 如果该元素还未编号
count++; // 编号加1
for (j = i; j < n; j++) {
if (a[j] == a[i]) { // 如果找到相同的元素
b[j] = count; // 给该元素赋相同的编号
}
}
}
}
printf("各个元素的编号为:");
for (i = 0; i < n; i++) {
printf("%d ", b[i]);
}
return 0;
}
```
输入示例:
```
请输入数组长度n:7
请输入数组元素:5 3 4 7 3 5 6
```
输出示例:
```
各个元素的编号为:3 1 2 5 1 3 4
```