小白求助
题目描述输入两行整数(每行不超过40个整数,整数之间以逗号分隔,每组整数中元素可能重复),合并两行整数,去掉在两行整数中都出现的整数,并按从小到大顺序排序输出。
输入
两行整数,每行不超过40个整数,整数之间以逗号分隔,每组整数中元素可能重复
输出
一行整数,以逗号分隔,合并两行整数,去掉在两行整数中都出现的整数,并按从小到大顺序排序输出
样例输入 复制
9,3,5,12,7,-3,-18,22
22,17,4,3,5,5,-4,12
样例输出 复制
-18,-4,-3,3,4,5,7,9,12,17,22
#include <stdio.h>
#include <string.h>
int main(void)
{
int a;
int i,j;
//输入
for (j = 0;j < 2;j++){
int ch = ',';
for (i = 0;i < 40;i++){
while (ch == ',' && scanf("%d",&a))
ch = getchar();
}
}
int b;
int len1 = sizeof(a) / sizeof(int);
int len2 = sizeof(a) / sizeof(int);
//将两个数组合并为一个数组
for (i = 0;i < len1-1;i++){
b = a;
}
for (i = 0;i < len2-1;i++){
b = a;
}
//开始删除相同元素
int len = (sizeof(b) / sizeof(b));
for (i = 0;i < len-1;i++){//遍历整个数组
for (j = i+1;j < len-1;j++){//寻找相同元素
while (b == b){//删除相同元素
for (int n = j;n < len-1;n++){
b = b;
}
len--;
}
}
}
//对b数组进行从小到大排序
for (i = 0;i < len-1;i++){
for (j = 0;j < len-1;j++){
if (b < b){
int tmp =b;
b = b;
b = tmp;
}
}
}
//输出
for(i = 0;i < len-1;i--){
printf(i == 0 ? "%d" : ",%d",b);
}
return 0;
}
请问一下该程序错在哪里呀?
页:
[1]