erman yazdi
n vezir sorusu:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,n,kalan,k=0,i,j,s=0;
char *dizi,temp;
printf("n sayisini giriniz:");
scanf("%d",&n);
dizi=(char*)malloc(sizeof(char)*(n+10));
for(i=0;i<=n+10;i++)
dizi[i]=0;
kalan=n%12;
for(i=2;i<=n;i=i+2)
{
dizi[k]=i;
k++;
}
a=k;
printf("
");
if(kalan==3||kalan==9)
{
dizi[k]=2;
dizi[0]=0;
k++;
}
b=k;
for(i=1;i<=n;i=i+2)
{
dizi[k]=i;
k++;
}
if(kalan==8)
{
for(i=0;dizi[a]!=0;i++)
{
temp=dizi[a];
dizi[a]=dizi[a+1];
dizi[a+1]=temp;
a=a+2;
}
}
if(kalan==2)
{
temp=dizi[a];
dizi[a]=dizi[a+1];
dizi[a+1]=temp;
dizi[a+2]=0;
dizi[n]=5;
a++;
}
if(kalan==3||kalan==9)
{
dizi[b]=0;
dizi[b+1]=0;
dizi[n+8]=1;
dizi[n+9]=3;
}
char matris[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
matris[i][j]=0;
for(i=0;i<n+10;i++)
{
if(dizi[i]!=0)
{
matris[dizi[i]-1][s]=1;
s++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf(" %d",matris[i][j]);
}
printf("
");
}
getchar();getchar();getchar();
return 0;
}
su doku:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j,x=1,k,temp,m;
int matris[9][9]={0};
srand(time(NULL));
for(x=1;x<10;x++)
{
j=rand()%9;
if(matris[0][j]==0){
matris[0][j]=x;
}
else
x--;
}
for(k=0;k<8;k++)
{
for(i=0;i<9;i++)
{
matris[k+1][(i+6)%9]=matris[k][i];
}
}
for(k=0;k<=2;k++)
{
m=0;
for(i=0;i<3;i++)
{
temp=matris[k][m];
matris[k][m]=matris[k][m+1];
matris[k][m+1]=temp;
m=m+3;
}
}
for(k=3;k<=5;k++)
{
m=1;
for(i=0;i<3;i++)
{
temp=matris[k][m];
matris[k][m]=matris[k][m+1];
matris[k][m+1]=temp;
m=m+3;
}
}
for(k=6;k<=8;k++)
{
m=0;
for(i=0;i<3;i++)
{
temp=matris[k][m];
matris[k][m]=matris[k][m+2];
matris[k][m+2]=temp;
m=m+3;
}
}
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
printf(" %d",matris[i][j]);
}
printf("
");
}
getchar();getchar();getchar();
return 0;
}
umarım işinize yarar..
niye n+10 luk bir dizi oluşturuyoruz da n*n lik değil
[/quote]
erdi
|