• 23-03-2013, 17:26:03
    #1
    /*
    *Write a C program that reads in integer numbers from the keyboard until 0.
    *(2p) After the user enters 0 make the program print out the smallest (2p) odd
    *number (2p) it caught and the largest number read previously.
    *Example run:
    *	Give a number please... 2
    *	Give a number please... 7
    *	Give a number please... 5
    *	Give a number please... 8
    *	Give a number please... 9
    *	Give a number please... 0
    *	Smallest odd number is: 5
    */
    
    #include <stdio.h>
    
    int main() {
    	int a,s;
    	
    	printf("Give a number please... ");
    	scanf("%d", &a);
    	
    	if(a%2==1) {
    		s=a;
    	}
    	
    	while(a!=0) {
    		printf("Give a number please... ");
    		scanf("%d", &a);
    		if((s>a)&&(a%2==1)) {
    			s=a;
    		}
    	}
    	
    	printf("Smallest odd number is: %d\n", s);
    	
    	return 0;
    }
    Çıktıyı aldığım zaman Smallest odd number is: 0 olarak geliyor. Nedenini bir türlü anlayamadım. Herşey düzgün gibi görünüyor ama bir türlü çıktıyı alamadım.

    Aldığım görüntü:


    İngilizce bilmeyenler için şöyle açıklıyayım soruyu:
    Kullanıcı klavyeden rakam girişi yapacak bu rakam girişi 0 girilene kadar devam edecek ve en sonunda da en küçük tek sayıyı ekrana yazdıracak.
  • 23-03-2013, 17:47:43
    #2
    Tüm koşulu while içine atmalısın:

    #include <stdio.h>
    
    int main() {
    	int a=2,s=0;
    	
    	while(a!=0) {
    		printf("Give a number please... ");
    		scanf("%d", &a);
    
    		if(a%2==1) {
    			if(s==0)
    			s=a;
    			else if(s>a)
    			s=a;
    		}
    	}
    	
    	printf("Smallest odd number is: %d\n", s);
    	
    	return 0;
    }
  • 23-03-2013, 17:55:30
    #3
    alorak82 adlı üyeden alıntı: mesajı görüntüle
    Tüm koşulu while içine atmalısın:

    #include <stdio.h>
    
    int main() {
    	int a=2,s=0;
    	
    	while(a!=0) {
    		printf("Give a number please... ");
    		scanf("%d", &a);
    
    		if(a%2==1) {
    			if(s==0)
    			s=a;
    			else if(s>a)
    			s=a;
    		}
    	}
    	
    	printf("Smallest odd number is: %d\n", s);
    	
    	return 0;
    }
    Ben de şimdi tekrardan yaptım aynı şeyi yazacaktım saçmalamışım ilk başta diyerekten. Çok teşekkür ederim ilgilendiğin vakit ayırdığın için.
  • 23-03-2013, 17:58:13
    #4
    Kolay gelsin tekrardan. Özgür yazılım ve derleyici kullandığınızı görmek de oldukça mutlu etti