加载中…
个人资料
faruto
faruto
  • 博客等级:
  • 博客积分:0
  • 博客访问:0
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

杂【郁闷~!写给自己的,以后别再范类似错误~!~~~

(2008-07-15 15:23:27)
标签:

杂谈

分类: 编程相关

subscript requires array or pointer type

#include <stdio.h>
#define MAX  200
int a[MAX], b[MAX], cnt = 0 ;

void jsVal()
{
 int i,j,k;
 int g,s,b,q;//局部变量定义覆盖了全局变量,太郁闷~!晕~真服我自己了,真想抽自己
 int new1,new2;
 b[0] = 12;
 printf("%d\n",b[0]);
 for(i=0;i<MAX;i++)
 {
  g = a[i]%10;
  s = a[i]/10%10;
  b = a[i]/100%10;
  q = a[i]/1000;
  if(g!=0 && b!=0)
  {
   new1 = q + g * 10;
   new2 = s + b * 10;
   if(new1%2 == 0 && new2%2 !=0
    )
   {
    b[cnt++]=a[i];
    
   }
  }
 }
 for(i=0;i<cnt;i++)
 {
  for(j=0;j<cnt;j++)
  {
   if(b[i]<b[j])
   {
    k=b[i];
    b[i]=b[j];
    b[j]=k;
   }
  }
 }
}

void readDat()
{
  int i ;
  FILE *fp ;
  fp = fopen("in.dat", "r") ;
  for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
  fclose(fp) ;
}

writeDat()
{
  FILE *fp ;
  int i ;
  fp = fopen("out.dat", "w") ;
  fprintf(fp, "%d\n", cnt) ;
  for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
  fclose(fp) ;
}

void main()
{
  int i ;
  readDat() ;
  jsVal() ;
  printf("满足条件的数=%d\n", cnt) ;
  for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
  printf("\n") ;
  writeDat() ;
}

===============================================

Josegh Ring(约瑟夫环)

#include<stdio.h>
#include<string.h>

void Josegh(int total, int start, int tom) //total:总人数,start:从第几个人开始报数 tom:数到多少出圈
{
 int i;
 int left; //剩余的人数
 int Start = start; //每次出圈的人,起始值为从第几个人开始报数

 int p[1000],q[1000]; //p来承装起始的人数,q来承装出圈的人的序列,q[0]是第一个出圈的人的号数,q[1]是第二个出圈的人的号数...
 memset(p,0,sizeof(p));//变量清空
 memset(q,0,sizeof(q));//变量清空(其实这里没必要,安全起见~!)
 for(i=0;i<total;i++)
 {
  p[i] = i+1;
 }
 for(left=total; left>0; left--) //剩余的人数,起始为总人数
 {
  Start = (Start + tom - 1) % left; //每次出圈的的人的号数,注意减一~!

  if(Start == 0) Start = left;

  q[total-left] = p[Start-1];

  for(i=Start;i<=left-1;i++)
   p[i-1]=p[i];
 }

 for(i=0;i<total;i++)
 {
  printf("%d ",q[i]);
  if((i+1)%10 == 0) printf("\n");
 }

}

int main()
{
 int total;
 int start;
 int tom;
 //scanf("%d %d %d",&total,&start,&tom);
 Josegh(1000,1,3);
 return 0;
}


 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有