C çalışma sorusu yardım

Başlatan swearer, 30 Ekim 2015, 18:09:38

swearer

Resimdeki program için yardımcı olabilecek var mı? Kodu kendim de yazdım ama çok beğenmedim eminim daha kaliteli şekilde çözülebilir. çünkü yazdığım kodda istemeğim halde ilk satırda fazladan bir new line oluşuyor.


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[]) {
   
   int i,j,sayi;
   
   printf("sayi:");
   scanf("%d",&sayi);
   
   for(i=0;i<=(2*sayi-1);i++)
      {
         for(j=0;j<(sayi-abs(sayi-i));j++)
         {
         printf("*");
         }
         printf("\n");
      }
   
   return 0;
}


sovalye


swearer

 ;D evet gözden kaçırmışım teşekkürler

mufitsozen

#include <stdio.h>

void StarPrint(int pNum){
    if(pNum <= 0){
        putchar('\n');
    } else {
        putchar('*');
        StarPrint(--pNum);
    }
}

int main() {
    int ndx=0;
        for(ndx=1; ndx<6; ndx++)StarPrint(ndx);
        for(ndx=4; ndx>0; ndx--)StarPrint(ndx);
}
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

Karamel

#4
#include <stdio.h>

int main(void)
{
	int i, j, f;

	printf("Lutfen yildiz sayisini giriniz:");
	scanf("%i", &i);

        putchar('\n');

	for(f=0; f<=i; f++)
	{
		j = f;
		while(j>0) {putchar('*'); j--;}
		putchar('\n');
	}

	for(f= i-1; f>=0; f--)
	{
		j = f;
		while(j>0) {putchar('*'); j--;}
		putchar('\n');
	}


	putchar('\n');

	return 0;
}


mesaj birleştirme:: 30 Ekim 2015, 21:58:00

konu acilmisken. konu sahibinden izin aldiktan sonra birazda algoritma yapmayi konussak. bence cok yararli olabilir.

mufit hocamin algoritmasi cok guzelmis. ben once soruyu okudum. visual studio da deneyi yaptim. code larimi buraya yerlestirdikten sonra mufit hocamin code larini inceledim.

hocamin yazim tarzi ve probleme yaklasim tarzi cok farkli. sanirim boye olabilmek icin. c dilini bilmekten ziyade hayatin her yonunde(physics, math, chemistry vs vs) kendimizi gelistirmek gerekiyor? cunku algorithm. bir probleme yaklasim bicimi oluyor?


Gökhan BEKEN

@swearer yazdığınız kod çalışabilir ama hile yapmışsınız.
abs ile mutlak değer almışsınız ama bu algoritma gerçek bir çözüm değil.
Özel mesaj okumuyorum, lütfen göndermeyin.

swearer

#6
@Gökhan BEKEN Evet maalesef. İç içe for dediği için başka yol aklıma gelmedi.

Diğer yardımcı olanlara da teşekkür ederim.

@Karamel tabiki algoritmadan bahsetsek benim için de çok güzel olur aslında.

@mufitsozen hocam gerçekten güzel bir bakış açısı kolay kolay aklıma gelmeyecek bir yöntem.

mufitsozen



#include <stdio.h>


void StarPrint(int pNum){

    if(pNum <= 0){
        putchar('\n');
    } else {
        putchar('*');
        StarPrint(--pNum);
    }
}

int main(){
    int YildizSayisi=5;
    int ndx=0;
    int num=0;

    ndx=0;
    while(ndx++<YildizSayisi){
        for(num=0;num<ndx; num++)putchar('*');
        putchar('\n');
    }
    ndx--;
    while(--ndx>0){
        for(num=0;num<ndx; num++)putchar('*');
        putchar('\n');

    }

    for(ndx=1; ndx<YildizSayisi+1; ndx++)StarPrint(ndx);
    for(ndx=YildizSayisi-1; ndx>0; ndx--)StarPrint(ndx);

}
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

swearer

#8
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[]) {
	
	int i,j,a,b;
	
	printf("Matris Satir Sayisi: ");
	scanf("%d",&a);
	printf("Matris Sutun Sayisi: ");
	scanf("%d",&b);
	
	int dizi[a][b];
	
	srand(time(NULL));
	
	for (i=0;i<a;i++){
		for (j=0;j<b;j++){
		//srand(time(NULL));
		dizi[i][j]=(rand()%11);  	
		}
	}
	printf("\n---Random %dx%d Matris---\n\n",a,b);
	
	for (i=0;i<a;i++){
		for (j=0;j<b;j++){
		printf("%3.1d ",dizi[i][j]);  
		if (j==b-1)
		printf("\n\n");	
		}
	}
		
	return 0;
}

yukarıdaki programda 0-10 aralığında rastgele sayı ile n*n lik matris oluşturuyorum
srand fonksiyonunu ilk for döngüsünün içinde çalıştırdığımda tüm matris aynı sayıdan oluşuyor.
ilk for döngüsünün bir üst satırında çalıştırınca düzgün çalışıyor.

for içinde de dışında da aynı saniye değerini tutuluyor çünkü döngüler çok hızlı bitiyor. ama for içinde ve dışında farklı sonuçlar veriyor. Neden for içinde düzgün çalışmıyor ?

@mufitsozen

mufitsozen

Alıntı yapılan: swearer - 03 Kasım 2015, 19:14:39
............
for içinde de dışında da aynı saniye değerini tutuyor çünkü döngüler çok hızlı bitiyor. ama for içinde ve dışında farklı sonuçlar veriyor. Neden for içinde düzgün çalışmıyor ?

@mufitsozen

@swearer ?
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

swearer


mufitsozen

Alıntı yapılan: swearer - 03 Kasım 2015, 19:58:51
müsait olduğunuzda bakabilir misiniz diye etiketledim

@swearer maalesef bu hafta imkansiz.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

yamak

#include <stdio.h>

int main(void)
{
    int yildizSayisi=5;
    int i;
    int j;
    int max;
    for(i=1;i>0;(max!=yildizSayisi)?++i:--i){
       for(j=1;j<=i;j++)
       {
           putchar('*');

       }
       if(i==yildizSayisi)
           max=yildizSayisi;
       putchar('\n');
    }
}