Προς το περιεχόμενο

search in C


life24

Προτεινόμενες αναρτήσεις

Δημοσ.

kalispera sas.sas parathetw poio katw ton kwthika mou kai ena word document me to provlima pou exw.exw ena provlima kai xreiazomai tin voitheia sas.to provlima pou exw einai sto int Search.stin prwti periptwsi otan vazw 2345672 kai 756 mou vgazei to munuma "oti o m den emfanizetai pouthena mesa sto n" to idio omws munuma to pairnw kai stin deuteri periptwsi dilathi otan valw 7321332150 kai 321.stin deyteri periptwsi omws prepei na mou epistrefei 3.pou kanw lathos?

2.zip

Doc1.zip

Δημοσ.

>
int Search(int N,int M)
{
int NlastDigit = lastDigit(N);
int nN = N;
int nM = M;
int curNDigit, curMDigit = lastDigit(M);
int Index, Index2, saveIndex;
for(Index = 0; Index < Length(N); Index++)
{
	
	curNDigit = lastDigit(nN);
	if(curNDigit == curMDigit)
	{
		saveIndex = Index;
		for(Index2 = 0; Index2 < Length(M) && saveIndex < Length(N); Index2++, saveIndex++)
		{
			curNDigit = lastDigit(nN);
			curMDigit = lastDigit(nM);
			if(curMDigit == curNDigit)
			{
				nM /= 10;
				nN /= 10;
			}
			else
				break;
			
		}
		if(Index2 == Length(M))
			/*return NlastDigit;*/
			return Length(N);
	}
	nN /= 10;
}
return 0;
}

 

Δεν καταλαβαίνω σε περίπτωση που το βρίσκουμε τι επιστρέφουμε ακριβώς, νομίζω αυτό σε καλύπτει, καλά δεν φοβάσαι μήπως σου αντιγράψουν τον κώδικα; Έτσι χύμα τον πετάς; Ένα ευχαριστώ είναι αρκετό.

Δημοσ.

se euxaristw gia tin voitheia sou.auto pou yaxnw einai stin prwti periptwsi dilathi 2345672 kai 756 na mou epistrefei 0 kai stin deyteri periptwsi vazotas tis poio katw times 7321332150 kai 321 na mou epistrefei 3.se euxaristw kai pali

Δημοσ.

>
#include <stdio.h>

int Length (int N)
{

int L=0;
	while(N>0){
		L=L+1;
		N=N/10;
	}
	return L;
}

int lastDigit(int M)
{
return (M % 10);
}

int Search(int N,int M) 
{ 
   int NlastDigit = lastDigit(N); 
   int nN = N; 
   int nM = M;
int nnN;
   int curNDigit, curMDigit = lastDigit(M); 
   int Index, Index2, saveIndex; 
   for(Index = 0; Index < Length(N); Index++) 
   { 
        
       curNDigit = lastDigit(nN); 
       if(curNDigit == curMDigit) 
       { 
           saveIndex = Index; 
		nnN = nN;
		nM = M;
           for(Index2 = 0; Index2 < Length(M) && saveIndex < Length(N); Index2++, saveIndex++) 
           { 
               curNDigit = lastDigit(nnN); 
               curMDigit = lastDigit(nM); 
               if(curMDigit == curNDigit) 
               { 
                   nM /= 10; 
                   nnN /= 10; 
               } 
               else 
                   break; 
                
           } 
           if(Index2 == Length(M)) 
               return Length(M); 
       } 
       nN /= 10; 
   } 
   return 0; 
} 


int main(void)
{
int nRet = Search(73215650,321);
printf("%d\n", nRet);
getchar();
}

 

Είχε ένα bug η προηγούμενη, χρησιμοποιήσε αυτή την search, αλλά αυτό που θέλεις δεν γίνεται με τόσο μεγάλους αριθμούς, ο τύπος int είναι 4 bytes και φτάνει ως ένα όριο, μεγαλύτεροι αριθμοί από αυτό το όριο INT_MIN, INT_MAX οπότε μεγαλύτεροι αριθμοί δεν περνάνε από την συνάρτηση. Για να κάνεις τέτοια κόλπα θα πρέπει να μπλέξεις με μετατροπή αριθμού σε string και εύρεση substring μέσα στο string. Κάτι το οποίο είναι ωραίο και γίνεται εύκολα, προς το παρόν βολέψου.

Δημοσ.

bokarinho polu swsto auto pou mou egrayes alla an eithes to programma mou exw xrisimopoihsei switch mazi me case. sto case tou search isws prepei na allaxw kati gia na mou dinei to swsto apotelesma stin deuteri periptwsi?

Δημοσ.

Παρά την απλότητα δυσκολεύομαι να καταλάβω το πρόγραμμα σου γιατί δεν μπορώ να καταλάβω την λογική σου, αρχικά πήγα να διορθώσω το τι είχες κάνει σε 20 δευτερόλεπτα άλλαξα γνώμη και έγραψα δικό μου function. Έχεις την συνάρτηση παίξε όπως θέλεις μαζί της δεν καταλαβαίνω.

Δημοσ.

Αυτό που μπορείς να κάνεις μεσα στην main είναι το εξής:

 

Κάπου να παίρνεις την τιμή που επιστρέφει η συνάρτηση Search και να λες:

 

>
nSearchValue = Search(N,M);
switch(nSearchValue)
{
case 0:
	....
	break;
case nSearchValue > 0:
	....
	break;
}

 

Δες το σαν ψευδοκώδικα το από πάνω.

Δημοσ.

bokarinho na se rwtisw kai kati allo pou isws esi mporeis na me voithiseis.gnwrizeis pws mporw na ftiaxw tin grafiki parastasi tou imitounou kai tou sunimitonou otan X from 0 to 360 degrees in steps of 10?

Δημοσ.

life24, παρακαλώ κάνε μία επεξεργασία στα μηνύματά σου μετατρέποντάς τα από Greeklish σε Ελληνικά. Είναι πραγματικά κρίμα για τον χρόνο που διέθεσε ο bokarinho να διαγραφεί το θέμα...

Δημοσ.

Πολύ απλά τα πράγματα - "3 γραμμές"

 

>#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
unsigned int  snum;  		//	subnumber
unsigned int  num=123456; 	// 	number
char number[10]; 			//	converted number
char snumber[10];   		//	converted subnumber

scanf("%d",&snum);
itoa(snum,snumber,10); 		//	convert int to string
itoa(num,number,10);
char *s=strstr(number,snumber);
if(s!=NULL){
	printf("Where : %d",s-number+1);
}
getch();
return 0;
}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...