. 編寫函數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;
}
}
}
}
沒運行,但是應該沒問題