趣味数组

来源:互联网 发布:淘宝怎么找人代付 编辑:程序博客网 时间:2024/05/21 17:05

问题描述:


#include<stdio.h>int a[11];int main(){int i,sum=0,j; for(i=0;i<11;i++){//先把数组里面数字都赋值     a[i]=1; }for(i=0;i<1000;i++){sum=sum+i+1;//第三个洞 j=sum%10;a[j]=0;}   for(i=0;i<10;i++){   if(a[i]){   printf("可能在第%d个洞里\n",i);   }   }return 0;} 



问题描述:

#include<stdio.h>struct player{int num;int score;int rand;};//成绩从小到大排列 void sortScore(struct player psn[],int n){//用player定义了一个数组 int i,j;struct player temp;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){//冒泡法排序if(psn[j].score>psn[j+1].score){temp=psn[j];//调换的是整体 psn[j]=psn[j+1];psn[j+1]=temp;}}}//设置名次 void  setRand(struct player psn[],int n){ int i,j=2;//j在这里做准备,如果分数不同,就以2为名词之后,j++  psn[0].rand=1; for(i=1;i<n;i++){//从第二个开始到最后一个  if(psn[i].score!=psn[i-1].score){ psn[i].rand=j; j++; }  else    psn[i].rand=psn[i-1].rand;//分数一样,名次相同  } }//按照序号重新排序 void sortNum(struct player psn[],int n){int i,j;struct player temp;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){//冒泡法排序if(psn[j].num>psn[j+1].num){temp=psn[j];//这个地方用序号比较但调换的是整体 psn[j]=psn[j+1];psn[j+1]=temp;}}}void sortRand(struct player psn[],int n){sortScore(psn,n);//分数排序 setRand(psn,n);//设置名次 sortNum(psn,n);//按照序号重新排序 } int main(){struct player psn[7]={{1,5,0},{2,3,0},{3,4,0},{4,7,0},{5,3,0},{6,5,0},{7,6,0}};int i;sortRand(psn,7);printf("姓名  分数  名次\n");for(i=0;i<7;i++){printf("%d  %d  %d\n",psn[i].num,psn[i].score,psn[i].rand);} return 0;} 





问题描述:

怎样将鱼和鱼筐平分为三份?

#include<stdio.h>int a[3][3],count=0;//三个人三种筐 int main(){    int i,j,k,m,n,flag;printf("可以的分配方案");for(i=0;i<=3;i++){//求第一个人的满筐 a[0][0]=i;//满筐的个数 for(j=i;j<=7-i&&j<=3;j++){//求第二个人的满筐 a[1][0]=j;if(a[2][0]=7-j-a[0][0]>3)//第三个人如果满筐则继续 continue;if(a[2][0]<a[1][0])break;//要求后一个人的满筐个数大于等于前一个人,以排除重复情况for(k=1;k<=5;k=k+2){a[0][1]=k;for(m=1;m<7-k;m=m+2){a[1][1]=m; a[2][1]=7-m-k;for(flag=1,n=0;flag&&n<3;n++){if(a[n][0]+a[n][1]<7&&a[n][0]*2+a[n][1]==7)a[n][2]=7-a[n][0]-a[n][1];elseflag=0;if(flag){  printf("存在的第%d种方案:",++count);  for(n=0;n<3;n++)  printf("%d  %d   %d  \n",a[n][0],a[n][1],a[n][2]);       }}}} } }return 0;} 

0 0