程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 91-幾道關於C語言的問題求解決

91-幾道關於C語言的問題求解決

編輯:編程解疑
幾道關於C語言的問題求解決

. 編寫函數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;
            }
        }

    }

}

沒運行,但是應該沒問題

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved