输入一个m个整数的数组c语言
时间: 2023-12-28 17:06:11 浏览: 57
可以使用以下代码输入一个m个整数的数组:
```c
#include <stdio.h>
int main() {
int m;
printf("请输入数组元素个数m:");
scanf("%d", &m);
int arr[m];
printf("请输入%d个整数:\n", m);
for(int i = 0; i < m; i++) {
scanf("%d", &arr[i]);
}
printf("您输入的数组为:\n");
for(int i = 0; i < m; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码会先让用户输入数组元素个数m,然后根据m的值创建一个大小为m的数组。接着,会让用户输入m个整数,将这些整数依次存储到数组中。最后,会输出用户输入的数组。
相关问题
输入一个正整数n(1<n<10),再输入n个整数数放入数组a中;然后输入一个正整数m(1<m<10),再输入m个整数数放入数组b中,找出所有不属于这两个数组的共有元素并输出 c语言
在 C 语言中,你可以通过以下步骤实现这个功能:
1. 首先,你需要声明两个整型数组 `a` 和 `b` 来存储输入的数字,并定义两个整数变量 `n` 和 `m` 分别表示数组长度。
```c
#include <stdio.h>
#include <stdbool.h>
int main() {
int n, m;
scanf("%d", &n);
int a[n]; // 存储第一个数组的元素
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &m);
int b[m]; // 存储第二个数组的元素
for (int j = 0; j < m; j++) {
scanf("%d", &b[j]);
}
```
2. 接下来,你可以创建一个新数组 `common` 来存放它们共有的元素。声明一个布尔数组 `seen` 来跟踪每个数字是否已经检查过。遍历 `a` 数组,对于每个元素检查它是否出现在 `b` 中,如果没有,则添加到 `common`。
```c
bool seen[100]; // 假设100足够大用于储存所有可能的元素
int common[100] = {0}; // 初始化所有元素为0
for (int i = 0; i < n; i++) {
if (!seen[a[i]]) {
for (int j = 0; j < m; j++) {
if (a[i] == b[j]) {
seen[a[i]] = true;
common[a[i]] = 1;
break;
}
}
}
}
```
3. 最后,遍历 `common` 数组,输出不属于这两个数组的共有元素。注意,这里我们通常只打印非零值,因为如果一个元素同时属于两数组,它的值在 `common` 中会被置为1。
```c
for (int k = 0; k < 100; k++) {
if (common[k] == 0) {
printf("%d ", k); // 输出公共但不属于任何数组的元素
}
}
return 0;
}
```
输入一个整数n在输入n个整数,存入数组一,然后再输入m个数存入数组2,对比不是两个数组都有的数据,c语言
在C语言中,你可以通过以下几个步骤来比较两个数组`array1`和`array2`,找出它们都不包含的数据:
1. 定义并初始化两个整数数组,例如:
```c
#include <stdio.h>
int main() {
int n, m;
printf("请输入第一个数组的元素个数(n): ");
scanf("%d", &n);
int array1[n];
// 读取并存储第一个数组
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个元素: ", i+1);
scanf("%d", &array1[i]);
}
printf("\n请输入第二个数组的元素个数(m): ");
scanf("%d", &m);
int array2[m];
// 读取并存储第二个数组
for (int j = 0; j < m; j++) {
printf("请输入第 %d 个元素: ", j+1);
scanf("%d", &array2[j]);
}
```
2. 创建一个新的数组`diff`用于存放只在一个数组中出现的数字,初始化长度为`n + m`。
```c
int diff[n+m];
int count = 0;
```
3. 遍历两个数组,将不在另一个数组中存在的元素添加到`diff`数组,并记录计数器`count`。
```c
for (int k = 0; k < n || k < m; ++k) {
if ((k < n && !binary_search(array2, m, array1[k])) ||
(k < m && !binary_search(array1, n, array2[k]))) {
diff[count++] = (k < n) ? array1[k] : array2[k];
}
}
```
这里假设有一个辅助函数`binary_search`用于查找数组中是否存在某个值。如果没有内置函数,你需要自定义这个函数。
4. 最后,打印出结果数组`diff`:
```c
printf("两个数组都不含的元素有: ");
for (int i = 0; i < count; i++) {
printf("%d ", diff[i]);
}
printf("\n");
return 0;
}
// 为了简化,这里仅提供二分查找示例,实际可以使用更高效的搜索算法
int binary_search(int arr[], int size, int target) {
int low = 0, high = size - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == target)
return true;
else if (arr[mid] < target)
low = mid + 1;
else
high = mid - 1;
}
return false;
}
```
阅读全文