Yazar |
|
erdi
![avatar](images/avatars/78n.gif)
istanbul
Kayıt: 19.02.2008 |
|
evet doğru...
1-kulanıcının girdiği N sayisi için N*N lik bir staranç tahtasında birbirini almayacak N tane vezir yerleştiren kod.(N>=4)
2-içersinde 3*3 lük matrislerden oluşan 9*9 luk bir alana rakamlar doldurulacaktır.her satır,her sutun ve her bölge (3*3);1 ile 9 arasındaki rakamlardan sadece bir kere yerleştirmesiyle doldurulmalıdr.
not:rakam o bölge,satır ve surtunda sadece bir kez kullanılabilir.ve rand fonksiyonunu kullanmalısın.
erdi
|
|
Yazar |
|
sumeyra
![avatar](images/avatars/77n.gif)
Kayıt: 28.12.2008 |
|
birinci grubun ilk sorusu klavyeden N sayi değerine göre bir matris oluşturan,sonra bu matrisin tüm sütunları ve çapraz toplamları eşit olacak şekilde sayıları yerleştiren c programı,
fonksiyonlu deil ama idare eder.diğer soruları cevaplayanlar paylaşırlarsa sevinirim
#include<stdio.h>
#include<stdlib.h>
main(){
int i,a,*p,b,boyut;
printf("matrisin boyutunu girin: ");
scanf("%d",&boyut);
p=(int*)malloc(sizeof(int)*boyut*boyut);
for(a=0;a<boyut;a++){
for(b=0;b<boyut;b++){
*(p+boyut*a+b)=0;
}
}
a=0;
b=boyut/2;
*(p+a+b)=1;
for(i=2;i<=boyut*boyut;i++){
if(*(p+boyut*((a+boyut-1)%boyut)+((b+1)%boyut))==0){
a=(a+boyut-1)%boyut;
b=(b+1)%boyut;
*(p+boyut*a+b)=i;
}
else
{
a=(a+1)%boyut;
*(p+boyut*a+b)=i;
}
}
for(a=0;a<boyut;a++){
for(b=0;b<boyut;b++){
printf("%4d",*(p+boyut*a+b));
}
printf(" ");
}
}
www.sumeyrahaslaman.com
|
|
Yazar |
|
sumeyra
![avatar](images/avatars/77n.gif)
Kayıt: 28.12.2008 |
|
arkadaşlar kimse yapmadımı soruları
www.sumeyrahaslaman.com
|
|
Yazar |
|
erman
![avatar](images/avatars/blank.gif)
Kayıt: 23.10.2008 |
|
sumeyra yazdi | arkadaşlar kimse yapmadımı soruları ![nerd nerd](images/smiley/nerd.gif) |
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..
|
|
Yazar |
|
xedo
![avatar](images/avatars/71n.gif)
Antalya
Kayıt: 27.11.2006 |
|
sumeyra yazdi | birinci grubun ilk sorusu klavyeden N sayi değerine göre bir matris oluşturan,sonra bu matrisin tüm sütunları ve çapraz toplamları eşit olacak şekilde sayıları yerleştiren c programı,
fonksiyonlu deil ama idare eder.diğer soruları cevaplayanlar paylaşırlarsa sevinirim
#include<stdio.h>
#include<stdlib.h>
main(){
int i,a,*p,b,boyut;
printf("matrisin boyutunu girin:
");
scanf("%d",&boyut);
p=(int*)malloc(sizeof(int)*boyut*boyut);
for(a=0;a<boyut;a++){
for(b=0;b<boyut;b++){
*(p+boyut*a+b)=0;
}
}
.....
|
tek durum için yapmışsın sen hocalar böyle kabul etmiyor. Yani her 5 girdiğinde her seferdinde farklı bi matris verecek ama yine de satırların toplamları falan eşit olacak.
|
|
Yazar |
|
xedo
![avatar](images/avatars/71n.gif)
Antalya
Kayıt: 27.11.2006 |
|
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;
umarım işinize yarar..
...
|
ben de sınavda aynen böyle yaptım ve 10 aldım. Sen 1leri tek durum için diziyorsun programı her çalıştırdığında ayrı sonuç vermesi lazım. yani bütün sorularda rand fonksiyonu kullanılacak.
|
|
Yazar |
|
erman
![avatar](images/avatars/blank.gif)
Kayıt: 23.10.2008 |
|
xedo yazdi | 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;
umarım işinize yarar..
...
|
ben de sınavda aynen böyle yaptım ve 10 aldım. Sen 1leri tek durum için diziyorsun programı her çalıştırdığında ayrı sonuç vermesi lazım. yani bütün sorularda rand fonksiyonu kullanılacak. |
sen bu soruyu aynen bu şekilde yaptıysan sınavdan 10 aldığını düşünmüyorum..zaten bu soruyu tam şekilde dogru yapan yok sanırsam yada ben duymadım..bu sorunun algoritmasını wikipedia dan aldım..orda tek durum için çözüm vardı ona göre kodladım..bu şekilde yapan birinin sınavdan (geçer) not alacagını düşünüyorum..hepinize kolay gelsin..
|
|
Yazar |
|
xedo
![avatar](images/avatars/71n.gif)
Antalya
Kayıt: 27.11.2006 |
|
erman yazdi | xedo yazdi |
ben de sınavda aynen böyle yaptım ve 10 aldım. Sen 1leri tek durum için diziyorsun programı her çalıştırdığında ayrı sonuç vermesi lazım. yani bütün sorularda rand fonksiyonu kullanılacak. |
sen bu soruyu aynen bu şekilde yaptıysan sınavdan 10 aldığını düşünmüyorum..zaten bu soruyu tam şekilde dogru yapan yok sanırsam yada ben duymadım..bu sorunun algoritmasını wikipedia dan aldım..orda tek durum için çözüm vardı ona göre kodladım..bu şekilde yapan birinin sınavdan (geçer) not alacagını düşünüyorum..hepinize kolay gelsin..
|
walla aynen böyle tek durum için yaptım ve hoca kabul etmiyorum dedi. önemli olan tek durum için yapman değil. random değerler kullanman. belli bi sıraya göre dizince kabul etmediler. sordum Rüya hocaya hocam ben böyle yaptım geçirmediniz bunu bile geçirmediyseniz 10 kişi anca geçer dedim. Rüya hoca gülerek 10 kişi bile yok dedi...
|
|
Yazar |
|
blackzero
![avatar](images/avatars/korsan.JPG)
Kayıt: 27.11.2006 |
|
#include <stdio.h>
#include <stdlib.h>
int is_safe(int *rows, int x, int y)
{
int i;
for (i=1; i <= y; ++i) {
if (rows[y-i] == x || rows[y-i] == x-i || rows[y-i] == x+i)
return 0;
}
return 1;
}
void putboard(int *rows,int n)
{
static int s = 0;
int x, y;
printf(" Solution #%d: --------------------------------- ", ++s);
for (y=0; y < n; ++y) {
for (x=0; x < n; ++x)
printf(x == rows[y] ? "| Q " : "| ");
printf("| --------------------------------- ");
}
}
void eight_queens_helper(int *rows,int n, int y)
{
int x;
for (x=0; x < n; ++x) {
if (is_safe(rows, x, y)) {
rows[y] = x;
if (y == n-1)
putboard(rows,n);
else
eight_queens_helper(rows,n, y+1);
}
}
}
int
main()
{
int n;
int *rows;
printf("n sayisini giriniz:");
scanf("%d",&n);
rows = (int *) malloc(sizeof(int)*n);
eight_queens_helper(rows,n, 0);
return 0;
}
nette buldugum bir kod, 8*8 likti,ben n*n seklinde duzenledim,tum cozumleri veriyor(cok buyuk sayi girmenizi tavsiye etmem ).bu sorunun algoritmasi oldukca zor digerlerine gore.
|
|
Yazar |
|
concordia
![avatar](images/avatars/18n.gif)
Kayıt: 14.02.2007 |
|
arkadaşlar elemanları {"kupa","karo","sinek","maca"} olan bi diziyi pointer kullanarak nasıl ifade edebilirim?
ben şöyle yaptım ama hata verdi:
char *ptk;
ptk=(char *)malloc(sizeof(char)*4)
*ptk="kupa";
ptk ++;
*ptk="karo";
ptk ++;
*ptk="sinek";
ptk ++;
*ptk="maca";
|
|
Yazar |
|
blackzero
![avatar](images/avatars/korsan.JPG)
Kayıt: 27.11.2006 |
|
char **ptk;
ptk=(char **) malloc(sizeof(char)*4) ;
ptk[0]="kupa";
ptk[1]="karo";
ptk[2]="sinek";
ptk[3]="maca";
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | |