. 编写函数int fun(int m),计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。例如,当m=10000时,程序输出:n=38。
#include
int fun(int m)
{
}
int main()
{int x;
scanf("%d",&x);
printf("n=%d\n",fun(x));
return 0;
}
. 编写函数void fun(int *x,int n),它的功能是:删除有n个数据的数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。n为数组长度,规定x中数据都为正数。
如程序运行时若输入:122 1461 6234 16 11 663 911 2671 381 6
删除后输出: 122 11 911 381 -1 -1 -1 -1 -1 -1
#define N 10
#include
void fun(int *x,int n)
{
}
int main()
{int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
第二个
void fun(int *x,int n)
{
char buf[120];
int i = 0;
int m = n;
int tmp = 0;
for(i = 0; i < n; i++)
{
memset(buf, 0x0, sizeof(buf));
sprintf(buf, "%d",x[i]);
ptr = strstr(buf, "6"); //记得包含头文件#include <string.h>
while(ptr == NULL)
{
if((i != m) && (i < m))
{
tmp = x[i];
x[i] = x[m -1];
x[m -1] = -1;
m--;
memset(buf, 0x0, sizeof(buf));
sprintf(buf, "%d",x[i]);
ptr = strstr(buf, "6");
if(ptr != NULL)
break;
}
else
{
x[i] = -1;
}
}
}
}
没运行,但是应该没问题
第一个:
#include
int fun(int m)
{
int n = 0;
int num = 0;
int total = 0;
for(n = 0; total<=m; n++)
{
num += num;
num++;
total += num;
}
teturn n-1;
}
int main()
{int x;
scanf("%d",&x);
printf("n=%d\n",fun(x));
return 0;
}