Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #include<math.h>
- #include<ctype.h>
- #define MAXK 128
- #define HSZ sizeof(int)/sizeof(short)*5
- int egesze(char s[])
- {
- int i=0;
- int kezd;
- /* feher karakterek atlepese */
- while (s[i]==' ' || s[i]=='\n' || s[i]=='\t')
- i++;
- if (s[i]=='+')
- i++;
- kezd=i;
- while (s[i]>='0' && s[i]<='9' && i-kezd<HSZ)
- ++i;
- if (s[i]!=0 && s[i]!='\n' && s[i]!='\t' && s[i]!=' ')
- return 0;
- else
- return 1;
- }
- int getline(char s[], int lim) {
- int i;
- char c;
- for(i=0;i<lim && (c=getchar())!='\n' && c!=EOF;++i)s[i]=c;
- s[i]='\0';
- while(c!='\n'&& c!=EOF)c=getchar();
- return i;
- }
- int lebege(char s[]){
- int i=0, kezd;
- while(isspace(s[i])) ++i;
- if(s[i]=='+'||s[i]=='-') ++i;
- kezd=i;
- while(isdigit(s[i])) ++i;
- if(s[i]=='.') ++i;
- while(isdigit(s[i])) ++i;
- if(i==kezd||kezd+1==i&&s[kezd]=='.') return 0;
- if(toupper(s[i])=='E'){
- ++i;
- if(s[i]=='+'||s[i]=='-')++i;
- if(!isdigit(s[i])) return 0;
- while(isdigit(s[i])) ++i;}
- if(isspace(s[i])||!s[i]) return 1;
- else return 0;
- }
- int intervell(float szam)
- {
- float minsz=10.00, maxsz=20.00;
- if(szam>=minsz && szam<=maxsz)
- return 1;
- else
- return 0;
- }
- void rendez(float w[], int n) {
- int i, j;
- int max;
- float g;
- for(i=0;i<n-1;++i){
- for(j=i+1, max=i; j<n; ++j)
- if(w[j]<w[max]) max=j;
- if(i!=max){
- g=w[i];
- w[i]=w[max];
- w[max]=g;
- }
- }
- }
- void main(void)
- {
- int j=0, i=0, log, db;
- char tmp[MAXK+1];
- float szam[MAXK], osszeg=0, negyzeto=0, negyzetgy=0, x;
- printf("A program x db szamot ker be szigoruan 10.00 - 20.00 kozott, pontosan\n"
- "ketto tizedesjegyre kerekitve!\n");
- for(j=0;j<80;j++)
- printf("-");
- log=0;
- while(!log)
- {
- printf("Kerem adja meg hany db szamot szeretne megadni: ");
- if(!getline(tmp,MAXK))
- printf("Ures sort adott meg! Adja meg ujra!\n");
- else
- {
- if(egesze(tmp))
- {
- db=atoi(tmp);
- log=1;
- }
- else
- printf("Sajnalom, de csak egesz szamot adhat meg!\n");
- }
- }
- log=0;
- while(!log)
- {
- printf("A(z) %d. szam: ", i+1);
- if(!getline(tmp,MAXK))
- printf("Ures sort adott meg! Adja meg ujra!\n");
- else
- {
- if(lebege(tmp))
- {
- if(strlen(tmp)==5)
- {
- x=atof(tmp);
- if(intervell(x))
- {
- szam[i]=x;
- i++;
- if(db==i)
- log=1;
- }
- else
- printf("Sajnalom, de a szam nem esik a megadott intervallumba (10.00 -20.00)!\n");
- }
- else
- printf("Sajnalom, de csak 10.00 es 20.00 kozotti, ket tizedesjegyre kerekitett szamot adhat meg!\n");
- }
- else
- printf("Sajnalom, de csak lebegopontos vagy egesz szamot adhat meg!\n");
- }
- }
- rendez(szam,db);
- printf("A begepelt szamok nagysag szerinti novekvo sorrendje:\n");
- for(j=0;j<db;j++)
- printf("%6.2f\t", szam[j]);
- printf("\n");
- for(j=0;j<80;j++)
- printf("-");
- for(j=0;j<db;j++)
- {
- osszeg+=szam[j];
- negyzeto+=szam[j]*szam[j];
- }
- negyzetgy=sqrt(negyzeto);
- printf("A szamok osszege: %6.2f\n"
- "A szamok negyzetosszege: %6.2f\n"
- "A negyzetosszegbol vont negyzetgyok pedig: %6.2f\n", osszeg, negyzeto, negyzetgy);
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement