C语言编程题目1(二级c) 请编写函数 fun:求出 1 到 m 之内能被 7或 11 整除、但不能同时被 7 和 11 整除的所有整数并将它们放 在 a 所指的数组中,通过 n 返回这些数的个数。

请编写函数 fun,它的功能是:求出 1 到 m 之内能被 7或 11 整除、但不能同时被 7 和 11 整除的所有整数并将它们放 在 a 所指的数组中,通过 n 返回这些数的个数。

#include<stdio.h>

int main() {
	void fun();
	int aa[1000], n, k, m = 100;
	fun(aa,&n,m);
	printf("一共%d个数满足条件\n",n);
	printf("分别是:\n",n);
	for(k=0;k<n;k++)
		if ((k + 1) % 10 == 0) {
			printf("%d\n",aa[k]);
		}
		else {
			printf("%d\n", aa[k]);
		}
	return 0;

}
 void fun(int *a,int *n,int m) {
	  *n=0;
	 for (int i = 1; i < m; i++) {
		 if (i%7==0&&i%11==0)
		 {
			 continue;
		 }else if(i % 7 == 0 || i % 11 == 0){
			 a[*n] = i;
			 (*n)++;
			 printf("nnnnn=%d",*n);
		 }
		 else
		 {
			 continue;

		 }
	 }
}

 

C语言中,你可以创建一个名为`fun`的函数,它会遍历1到1000之间的所有整数,并检查它们是否符合给定的条件。以下是一个简单的实现: ```c #include <stdio.h> #include <stdlib.h> int* findNumbers(int* a, int n) { int count = 0; // 计器,用于记录找到的符合条件的量 for (int i = 1; i <= 1000; i++) { // 遍历1到1000 if (i % 7 == 0 || i % 11 == 0) { // 检查是否能被7或11整除 if (i % 7 != 0 && i % 11 != 0) { // 如果不是同时能被7和11整除 a[count] = i; // 将添加到组 count++; // 增加计器 } } } // 分配内存并返回组和实际的元素量 a = realloc(a, count * sizeof(int)); // 如果之前未分配组,此时分配 return a; } int main() { int size; printf("Enter the number of elements to store: "); scanf("%d", &size); int* result = malloc(size * sizeof(int)); // 初始化组 result = findNumbers(result, size); // 调用函数 printf("Numbers that satisfy the conditions: "); for (int i = 0; i < size; i++) { printf("%d ", result[i]); } free(result); // 释动态分配的内存 return 0; } ``` 在这个程序中,`findNumbers`函数首先初始化一个计器`count`,然后遍历1到1000。如果一个数满足条件,就将它存储在`a`数组中并增加计器。最后,根据`count`更新组大小并返回。 注意:`realloc`函数用于动态调整数组的大小,因为`malloc`只分配固定大小的内存。在`main`函数中,你需要输入需要存储的元素量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值