1215787625 发表于 2023-11-15 09:33:30

小白求助

题目描述
输入两行整数(每行不超过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]
查看完整版本: 小白求助