才考完,没题目,先传代码...
#include<stdio.h> #include<string.h> int main() { int flag=0; int a[105]; int tmp[105]; int i=0,k=0; int sum=0; memset(a,0,sizeof(a)); memset(tmp,0,sizeof(tmp)); while(!flag) { scanf("%d",&a[i]); if(a[i]!=0) tmp[k++]=a[i];//不为0,就把它存进tmp数组里 else flag=1; i++; } int j=0; //方便理解的版本 //while(j<k) //{ // if(tmp[j]==1) // sum+=tmp[j]; // else if(tmp[j]!=1&&tmp[j-1]==1) // sum+=tmp[j];//实际上这个和上一种情况写在一起就可以啦,这里是为了方便理解 // else if(tmp[j]!=1&&tmp[j-1]!=1) // { // tmp[j]=tmp[j-1]+2; // sum+=tmp[j]; // } // j++; //} //下面是简化的版本 while(j<k) { if(tmp[j]!=1&&tmp[j-1]!=1) { tmp[j]=tmp[j-1]+2; }sum+=tmp[j]; j++; } printf("%d",sum); return 0; }