c语言题目
【输入形式】第1行是一个整数T,表示有T行测试数据。每行的第1个数n(n<=10)表示该组测试数据的个数,后跟n个整数及1个待查找的数x,即在前面的n个数中查找数x。
【输出形式】若找到,输出find!,否则输出no find!。
【样例输入】
2
5 2 3 4 5 6 3
10 46 52 5 30 85 120 76 8 99 12 22
【样例输出】
find!
no find! 展开
根据题意:
题目1:函数参数是除数(这里传值8),返回满足条件的数字和。
题目2:函数参数是要找的项目数(这里传值10),返回对应项的值。
#include<stdio.h>
#define MIN 50
#define MAX 1000
int fa(int a);//对应题目1的函数,参数:要除的数,返回可以被整除的数之和
int getByIndex(int n);//对应题目2,返回数列第n项,错误返回-1
int main()
{
printf("1、%d~%d之间能被%d整除的数字之和为:%d\n",MIN,MAX,8,fa(8));
printf("2、数列头三个数为4,5,6,以后的每个数为前三数和,求此数列第%d项:%d\n",10,getByIndex(10));
return 0;
}
int fa(int a)//对应题目1的函数,参数:要除的数,返回可以被整除的数之和
{
int i,sum=0;
for(i=MIN;i<=MAX;i++)
if(i%a==0)
sum+=i;
return sum;
}
int getByIndex(int n)//对应题目2,返回数列第n项,错误返回-1
{
if(n<1)
return -1;
int i,nums[n];
nums[0]=4,nums[1]=5,nums[2]=6;
for(i=3;i<n;i++)
nums[i]=nums[i-1]+nums[i-2]+nums[i-3];
return nums[n-1];
}
#include<stdlib.h>
int main()
{
int rowCount; //测试数据的行数
int buf[12]; //第一个位置存放本行数据的个数,后边存放本行的数据,数据的末尾存放待查找的目标
int i, j;
int *findResult;
//读取测试数据的行数
scanf("%d", &rowCount);
if (rowCount < 1)
return -1;
//分配每行数据查找结果的存储空间
findResult = (int *)malloc(sizeof(int) * rowCount);
for (i = 0; i < rowCount; i++) {
setbuf(stdin, NULL);
//读取每行数据的个数
scanf("%d", &buf[0]);
if(buf[0] < 1 || buf[0] > 10)
return -2;
//读取测试数据及待查找的目标
for (j = 0; j <= buf[0]; j++)
scanf("%d", &buf[j + 1]);
//查找目标是否在测试数据中
findResult[i] = 0;
for (j = 0; j < buf[0]; j++)
if(buf[j + 1] == buf[buf[0] + 1]){
findResult[i] = 1;
break;
}
}
//输出结果
for (i = 0; i < rowCount; i++)
printf("%s\n", findResult[i] == 1 ? "find!" : "no find!");
//释放分配的空间,否则内存泄露了
free(findResult);
//让屏幕暂停,以便查看结果
system("PAUSE");
return 0;
}
{int a[100],t,n,s,i,j;
scanf("%d",&t);
for(i=0;i<t;i++)
{scanf("%d",&n);
for(j=0;j<n;j++)scanf("%d",a[j]);
scanf("%d",&s);
for(j=0;j<n;j++)
if(s==a[j]){printf("find");break;}
if(j==n)printf("no find");
还没答完呢😄
最后再加两个右花括号:
}}
程序就完整了。