PTA7-8 找出不是两个数组共有的元素

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。

输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:
10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1
输出样例:
3 5 -15 6 4 1

刚开始的想法是直接枚举,即挨个比看等不等于,但是比较麻烦的是排除相同数字的情况
于是我先把相同数字给去掉,再存储到数组里,在那样硬比就比出来了
方法不好,但是很好想

#include <stdio.h>
#pragma warning(disable:4996)
int main(void) {
	int n1, n2, num2[20], i = 0;
	int num1[20];
	int cnt[40];
	int mm = 0, m1 = 0;
	scanf("%d", &n1);
	while (1) {//输入数字
	nima:
		scanf("%d", &num1[i]);
		for (int j = 0; j < i; j++) {
			if (num1[i] == num1[j]) {
				n1--;
				if (i != n1)
					goto nima;
				goto nimabi;
			}
		}
		i++;
		if (n1 == i)
			break;
	}
nimabi:
	i = 0;
	scanf("%d", &n2);
	while (1) {//输入数字
	nimaa:
		scanf("%d", &num2[i]);
		for (int j = 0; j < i; j++) {
			if (num2[i] == num2[j]) {
				n2--;
				if (i != n2)
					goto nimaa;
				goto nimabia;
			}
		}
		i++;
		if (n2 == i)
			break;
	}
nimabia:

	
	for (int j = 0; j < n1; j++) {
		mm = 0;
		for (int k = 0; k < n2; k++) {
			if (num1[j] == num2[k])
				mm++;
		}
		if (mm == 0) {
			if (m1) {
				printf(" ");
			}
			m1++;
			printf("%d", num1[j]);
		}
	}
	mm = 0;
	for (int j = 0; j < n2; j++) {
		mm = 0;
		for (int k = 0; k < n1; k++) {
			if (num2[j] == num1[k])
				mm++;
		}
		if (mm == 0) {
			if (m1) {
				printf(" ");
			}
			m1++;
			printf("%d", num2[j]);
		}
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一维数组在生活中有许多应用。下面列举一些例子: 1. 学生成绩管理 在学生成绩管理系统中,可以使用一维数组来存储学生的各科成绩,方便查询和计算平均分等操作。 2. 库存管理 在库存管理系统中,可以使用一维数组来存储商品的名称、数量、价格等信息,方便进行进货、销售和库存统计等操作。 3. 电话簿 在电话簿中,可以使用一维数组来存储联系人的姓名、电话号码等信息,方便进行查找和管理。 4. 游戏排行榜 在游戏中,可以使用一维数组来存储玩家的得分、等级等信息,方便进行排名和比较。 5. 购物清单 在购物清单中,可以使用一维数组来存储要购买的商品名称、数量、价格等信息,方便进行结算和管理。 下面是一个简单的Java程序,演示了如何使用一维数组进行学生成绩管理: ``` import java.util.Scanner; public class ScoreManagement { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n; System.out.print("请输入学生人数:"); n = input.nextInt(); int[] score = new int[n]; for (int i = 0; i < n; i++) { System.out.print("请输入第" + (i+1) + "个学生的成绩:"); score[i] = input.nextInt(); } int sum = 0; for (int i = 0; i < n; i++) { sum += score[i]; } double average = sum / (double)n; System.out.println("平均分为:" + average); } } ``` 在上面的程序中,首先通过输入学生人数来创建一个对应长度的一维数组 `score`,然后通过循环输入每个学生的成绩。最后计算所有学生的平均分并输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值