m0_50978384 2020-09-21 23:57 采纳率: 0%
浏览 48

如何能改变seach()函数中的n的值?

寻找n8枚硬币中的假币

这个n无法改变,导致函数无法正常运行

#include

int Fendui(int n,int s[]){ //将数组分为3堆
int i,c1,c2,c3;
for(i=0;i<n/3;i++)
c1+=s[i];
for(i=n/3;i<(2*n)/3;i++)
c2+=s[i];
for(i=(2*n)/3;i<n;i++)
c3+=s[i];
if(c1==c2) return (2*n)/3; //判断假币在哪一堆,并返回所在数组的开头的位置
if(c1==c3) return n/3;
if(c2==c3) return 0;
}
int search(int n,int s[]){ //查找硬币在哪一堆
int k,i,j;
while(n!=1){
if(n%3==0){
k=Fendui(n,s);
n=n/3;
}
if(n%3==1)
if(s[n-1]!=s[n-2]&&s[n-1]!=s[n-3]) return s[n-1];
else{
k=Fendui(n-1,s);
n=(n-1)/3;
}
if(n%3==2)
if(s[n-1]==s[n-2]){
k=Fendui(n-2,s);
n=(n-2)/3;
}
else if(s[n-1]!=s[n-3]) return s[n-1];
else return s[n-2];
for(i=k;i<n;i++)
{
s[j]=s[i];
j++;
}
}
}

int main(){
int k;
int s[8]={1,1,1,1,2,1,1,1};
k=search(8,s);
printf("%d",k);
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-22 00:06
    关注

    int search(int n,int s[]){
    ->
    int search(int & n,int s[]){

    评论

报告相同问题?

悬赏问题

  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?