c diline başlayalı az bir zaman oldu kaynaklardan bi yere kadar kafamdaki soruları yanıtlayak biri mutlaka olmalı şu soruma yardımcı olursanız sewinirim matrisin elemetlerinin en büyük değerini bulma programını yazabiliyorum ama karışık bi soru çıktı karşıma ve baya zorlandım...soruda:
matrisin negatif elementlerini -2 ile çarp ve çıkan matrisdede en büyük elementi bul...
program bu şekilde olacak arkadaşlar eğer kodları tam şekilde yazarsanız çok sewinirim...borland c de çalışıyorum... şimdiden teşekkürler....
başlangıç seviyesinde bir sorusu...
alelacele yazdım, umarım anlaşılır olmuştur.anlamadığın bir yer varsa sorabilirsin.
#include <stdio.h>
void main(void)
{
double arr[2][2]; /* 2x2 lik array tanımla */
double biggest; /* en büyük elemanın tutulacağı yer */
int i, j;
/* elemanları al */
printf("2 x 2 lik matrisin elemanlarini girin>\n");
for( i = 0; i < 2; i++)
for(j = 0; j < 2; j++){
scanf("%lf", &arr[j]);
}
biggest = arr[0][0]; /* ilk elemanı en büyük eleman olarak seç */
for( i = 0; i < 2; i++)
/* ilk elemanı diğer tüm elemanlarla kıyasla */
for(j = 0; j < 2; j++){
if(arr[j] > biggest)
biggest = arr[j]; /* eğer daha büyük eleman varsa biggest a o değeri ata */
}
/* -2 ile çarpamadan önceki en büyük elemanı yazdır */
printf("\nEn buyuk eleman = %.2f\n\n", biggest);
/* başlangıç değeri olarak ilk elemanın -2 ile çarpılmış halini seç */
biggest = arr[0][0] * -2;
for( i = 0; i < 2; i++)
for(j = 0; j < 2; j++){
arr[j] = arr[j] * (-2); /* tüm elemanları -2 ile çarp */
if(arr[j] > biggest)
biggest = arr[j]; /* en büyük elemanı belirle */
}
printf("-2 ile carptiktan sonra\n" /* ekrana yazdır */
" en buyuk eleman = %.f\n\n", biggest);
}
Yukarıda yazilan koda gore program 2 boyutlu matrisin satirlarinin tanımlanmaması gerekcesiyle hatalı calisacaktir.Ayrıca bir matrisin negatif bir sayı ile carpılması durumunda,matrisin en kucuk elemani yeni durumda en buyuk eleman olacaktir.
O halde yukarıdaki kodun dogru yazim sekli asagidaki gibi olabilir
#include <stdio.h>
int main() {
double arr[2][2]={0};
double biggest,kucuk;
int i, j;
printf("2 x 2 lik matrisin elemanlarini girin>\n");
for( i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
scanf("%lf", &arr[j]);
biggest = arr[0][0];
kucuk=arr[0][0];
for( i = 0; i < 2; i++)
for(j = 0; j < 2; j++) {
if(arr[j] > biggest)
biggest = arr[j];
if(arr[j] < kucuk)
kucuk=arr[j];
}
printf("\nEn buyuk eleman = %0.0f\n\n", biggest);
printf("\nCarpim isleminden sonra en buyuk eleman:%0.0lf",kucuk*-2);
return 0;
}
Başarılar
Yukarıda yazilan koda gore program 2 boyutlu matrisin satirlarinin tanımlanmaması gerekcesiyle hatalı calisacaktir.Ayrıca bir matrisin negatif bir sayı ile carpılması durumunda,matrisin en kucuk elemani yeni durumda en buyuk eleman olacaktir.
O halde yukarıdaki kodun dogru yazim sekli asagidaki gibi olabilir
#include
int main() {
double arr[2][2]={0};
double biggest,kucuk;
int i, j;
printf("2 x 2 lik matrisin elemanlarini girin>\n");
for( i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
scanf("%lf", &arr[j]);
biggest = arr[0][0];
kucuk=arr[0][0];
for( i = 0; i < 2; i++)
for(j = 0; j < 2; j++) {
if(arr[j] > biggest)
biggest = arr[j];
if(arr[j] < kucuk)
kucuk=arr[j];
}
printf("\nEn buyuk eleman = %0.0f\n\n", biggest);
printf("\nCarpim isleminden sonra en buyuk eleman:%0.0lf",kucuk*-2);
return 0;
}
Başarılar
Hangi satırda matrisin elemanları -2 ile çarpılıyor?Açıklamana göre hata çıkacağı için mi eklemedin?
#include<stdio.h>
int main()
{
int arr[2][2];
int max,min;
int i,j;
printf("2x2 matrisini elemanlarini girin\n");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",arr[j]);
}
}
max=arr[0][0];
min=arr[0][0];
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
if(arr[j]>max)
{
max=arr[j];
}
if(arr[j]<min)
{
min=arr[j];
}
}
}
printf("Max element=%d\n",max);
printf("Min element=%d\n",min);
return 0;
}
Program bu haliyle hata veriyor çalışıyor ama sonra kapanıyor int arr[2][2]={0} yaptığımda da olmadı.
Tanım:bir matrisin negatif bir sayı ile carpılması durumunda,matrisin en kucuk elemani yeni durumda en buyuk eleman olacaktir.
Yukarıdaki tanıma göre matrisin en kucuk elemanı bulunarak,printf() fonksiyonu icerisinde -2 ile cebirsel carpım yapılmaktadır.Nihayetinde en buyuk elemana ulasılmıs olunur.
Başarılar
Benim modifiye ettiğim programda hata nerede acaba?
scanf() fonksiyonu icerisinde,matrisin elemanlarini bellek yonetimine yerlestirmemenizden kaynaklanan bir sorun olmaktadır.İşaretciler(pointers) ve karakter dizileri(characters arrays) dışında,scanf() input işlemlerini & (ampersand) başvuru belirtecini kullanarak veri girişi gerceklestirmeniz gerekir.
Başarılar