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;
}
加载中,请稍候......