Valaki segítene C programozásban?
Hali, megint lenne egy kérdésem.
Az alábbi a feladat:
1. t1 11 elemű tömb feltöltése olyan karakterekkel, amelyeknek decimális értékének 1-esek és 10-esek helyi értékén levő számjegyek összege páros
2. t1->t2 t1 olyan elemei, melyek nem oszthatóak se 3-mal se 5-tel (a decimális értéküket vizsgáljuk)
3. t1 ből megkeresni azt a karaktert amelyikben a legtöbb bináris 0 van.
4. ezeket kiiratni.
Én így csináltam:
#include <stdio.h>
#include <stdlib.h>
void feltolt(char *p);
void osztas(char *p, char *q);
void keres(char *p, char *s);
void kiir(char *p, char *q, char *s);
int main()
{
char tomb1[11];
char tomb2[11];
char szam;
feltolt(tomb1);
osztas(tomb1,tomb2);
keres(tomb1,szam);
kiir(tomb1,tomb2,szam);
return 0;
}
void feltolt(char *p)
{
char a=0;
int i,j,v=0;
for(i=0,j=0;i<11;i++,j++)
{
printf("%d. karakter: ",j+1);
scanf("%c",&a);
printf("\t decimalis erteke: %d\n",a);
v=a;
if(((v%10)+((v/10)%10))%2==0)
*(p+i)=a;
else
{
printf("nem jo szam\n");
i--;
}
fflush(stdin);
}
}
void osztas(char *p, char *q)
{
int i,v=0,j=0;
for(i=0;i<11;i++)
{
v=*(p+i);
if(v%3!=0 && v%5!=0)
{
*(q+j)=*(p+i);
j++;
}
}
}
void keres(char *p, char *s)
{
int i=0,db=0,nagy=0;
while(i<11)
{
if((p[i]&0b10000000)==0) db++;
if((p[i]&0b01000000)==0) db++;
if((p[i]&0b00100000)==0) db++;
if((p[i]&0b00010000)==0) db++;
if((p[i]&0b00001000)==0) db++;
if((p[i]&0b00000100)==0) db++;
if((p[i]&0b00000010)==0) db++;
if((p[i]&0b00000001)==0) db++;
if(db>nagy)
{
nagy=db;
*s=p[i];
}
i++;
}
}
void kiir(char *p, char *q, char *s)
{
printf("elso tomb: %s\n",p);
printf("masodik tomb: %s\n",q);
printf("legtobb binaris nulla: %s\n",s);
}
Nos ha a bináris 0ás függvényt kiveszem, akkor tökéletesen működik. Viszont ha így berakom, akkor miután feltöltöttem a tömböt vmi 'call stack' nevü kis hibaüzenet ugrik elő. Valaki tudja mi lehet a gond?
Köszi előre is
amugy most néztem, és amikor a hibát kiírja a debugger kis sárga nyila a:
*s=p[i];
sorra ugrik, itt lehet a gond?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!