Thread: Programozás
View Single Post
  #28  
Old 01-18-2011, 20:01
BimmBimm's Avatar
BimmBimm BimmBimm is offline
Member
 
Join Date: Jan 2007
Location: Hódmezővásárhely
Posts: 1,448
Activity: 0%
Longevity: 94%
Default

Itt egy megoldás permutációkra, anno első éves anyagból C nyelven:

PHP Code:
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
#include <math.h>

int hiba[8];
int pont[8];
int sorr[8];

char chs[11];
//int poss[];
//pt(chs,0);
int pt(chars,int dint usedc[],FILE *out)
{
    
int i;
    
char tmp;

    
    
        for (
i=0;i<strlen(chs);i++)
        {
            if (
usedc[i]==1) continue;

            
usedc[i]=1;
            
tmp=s[d];
            
s[d]=chs[i];
            
pt(s,d+1,usedc,out);
            
tmp=s[d];

            
usedc[i]=0;
        }

    if (
d<=strlen(chs)-1)
         return 
0;


        
fprintf(out,"%s\n",s);

        return 
1;
    
}

int main()
{
    
int i,i2,i3;
    
int dob;
    
int eldob=-1;
    
int tmp;
    
char news[50];
    
int usedc[50];

    
FILEin=fopen("be.txt","rt");
    
FILEout=fopen("ki.txt","wt");

    
fscanf(in,"%s",&chs);
    
fclose(in);

    
memset(usedc,0,sizeof(usedc));

    for (
i=1;i<strlen(chs);i++)
    {
        for (
i2=strlen(chs)-1;i2>=i;i2--)
        {
            if (
chs[i2-1]>chs[i2]) 
            {
                
tmp=chs[i2];
                
chs[i2]=chs[i2-1];
                
chs[i2-1]=tmp;
            }
        }
    }

    
strcpy(news,chs);
    
pt(news,0,usedc,out);

    
fclose(out);

    return 
0;

A spacifikáció:

Bemenet
A bemenetet a be.txt fajlbol olvassuk be. A bemenet egy szobol all, melyet sorvegejel kovet. A szoban
csak ekezet nelkuli kis- es nagybetuk szerepelhetnek, azaz szokoz, TAB, illetve mas karakterek nem. A
bemeneti szo betui paronkent kulonbozoek, tehat egy betu legfeljebb egyszer szerepelhet benne.
A bemeneti szo betuinek szama M (1 <= M < 10).
Kimenet
A kimenetet a ki.txt fajlba ırjuk ki. A kimenet M! db sorbol all: minden egyes sorban a bemenetkent
kapott szo betuinek egy permutacioja all, melyet rogton sorvegejel kovet. A szavak kiırasi sorrendje az
abece szerint tortenjen. A nagybetuk a kisbetuk elott vannak az abecesorban!
__________________
Mert ott van az erő, az egyszerű magyarban
Egyenes derékkal, áll minden viharban

BimmBimm (#233333)

Éplista számító

Last edited by BimmBimm; 01-18-2011 at 20:04..
Reply With Quote