C Den Anlıyan Muridlerden Acil Yardım İstiyorum
-
C dersinde çok zor durumdayım ödevlerimde yapamadıgım sorular var anlıyan arkadaşlar kodları yazarak yardımcı olurlarsa sevinirim şimdiden teşekkürler
<!-- /* Font Definitions */ @font-face {font-family:Calibri; mso-font-alt:Arial; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
Soru1: Bir karakter dizisi ve onun boyutunu parametre olarak alan ve dizideki tamsayıların (diğer karakterlerin değil) toplamını alan bir fonksiyon yazın.
Örnek:
Input:
19
w^12ae2yjh(q*3d“30r
Output:
47
Input:
15
ab12us67sn20sa1
Output:
100
Input:
35
hdq12=39r12kdqerjdj312a8032-mda=axp
Output:
8407
Soru2: Bir tamsayı diziyi, dizinin boyutu ve iki tamsayı gösterge (pointers) parametresi olmak üzere girdi olarak alan bir fonksiyon yazın. Fonksiyon tek ve çift sayıların toplamını bu pointerlarda tutsun.
Örnek:
Input:
9
3-5-2-1-12-4-6-8-10
Output:
9-42
Input:
8
4-6-2-8-12-24-46-10
Output:
0-112
Input:
5
7-11-5-9-3
Output:
35-0
-
Hoca 15 dk işim var gidip geleyim bakayım sorularına.
-
scampjackal bunu yazdı:
-----------------------------C dersinde çok zor durumdayım ödevlerimde yapamadıgım sorular var anlıyan arkadaşlar kodları yazarak yardımcı olurlarsa sevinirim şimdiden teşekkürler
Soru1: Bir karakter dizisi ve onun boyutunu parametre olarak alan ve dizideki tamsayıların (diğer karakterlerin değil) toplamını alan bir fonksiyon yazın.
Örnek:
Input:
19
w^12ae2yjh(q*3d“30r
Output:
47
Input:
15
ab12us67sn20sa1
Output:
100
Input:
35
hdq12=39r12kdqerjdj312a8032-mda=axp
Output:
8407
-----------------------------w^12ae2yjh(q*3d“30r
12+2+30+3=47 mi olucak yoksa 1+2+2+3+3+0 mı?
-
1. Sorunun cevabı:
Visual Studio C++ 2008 derleyicisiyle derlendi çalışıyor.
------------------------------------
Lutfen karakteri giriniz!
asda23,123",423,3
Lutfen katar²n uzunluunu giriniz
17
572------------------------------------
Kodları:
#include "stdio.h"
#include "stdlib.h" //atoi()
#include "conio.h" //getch()
int kintbultopla(char *s, int uzunluk)
{
char rakamlar[]={'0','1','2','3','4','5','6','7','8','9',NULL};
int toplam, sayac;
char gecicisayi[10];
short int oncekirakam;
oncekirakam=0;
toplam=0;
sayac=0;
for(int i=0; i<uzunluk; i++)
{
tekrar:;
for(int j=0; j<10; j++)
{
if(*(s+i)==rakamlar[j])
{
oncekirakam=1;
gecicisayi[sayac++]=*(s+i);
i++;
goto tekrar;
}
}
if(oncekirakam==1)
{
gecicisayi[sayac]=NULL;
toplam+=atoi(gecicisayi);
}
oncekirakam=0;
sayac=0;
}
return toplam;
}
void main()
{
char kkatar[300];
int uzunluk;
puts("Lutfen karakteri giriniz!\n");
gets(kkatar);
puts("Lutfen katarın uzunluğunu giriniz");
scanf("%d",&uzunluk);
printf("%d",kintbultopla(&kkatar[0],uzunluk));
getch();
} -
2. sorunun cevabı: (Dinamik bellek yöntemiyle yaptım normal halinide yaparsın sanırım)
İşte kodlar:
-----------------------------------------------------------------
#include "stdlib.h"
#include "conio.h"
#include "stdio.h"
void tekvecifttopla(int *dizi, int diziboyut, int *tek, int *cift)
{
for (int i=0; i<diziboyut; i++)
{
if((*(dizi+i))%2==1)
{
*tek+=*(dizi+i);
}
else
{
*cift+=*(dizi+i);
}
}
}
int main()
{
int tek=0,cift=0,*tamsayidizi,diziboyutu;
puts("Dizinin boyutunu giriniz");
scanf("%d",&diziboyutu);
tamsayidizi=(int*)calloc(diziboyutu,sizeof(int));
puts("Dizinin elemanlarini giriniz");
for (int i=0; i<diziboyutu; i++)
{
printf("%d. Elemani girin\n",i+1);
scanf("%d",(tamsayidizi+i));
}
tekvecifttopla(tamsayidizi,diziboyutu,&tek,&cift);
printf("Tek sayilar=%d\nCift sayilar=%d",tek,cift);
free(tamsayidizi);
getch();
}------------------------------------------------
-
DrKill bunu yazdı:
-----------------------------
2. sorunun cevabı: (Dinamik bellek yöntemiyle yaptım normal halinide yaparsın sanırım)
İşte kodlar:
-----------------------------------------------------------------
#include "stdlib.h"
#include "conio.h"
#include "stdio.h"
void tekvecifttopla(int *dizi, int diziboyut, int *tek, int *cift)
{
for (int i=0; i
{
if((*(dizi+i))%2==1)
{
*tek+=*(dizi+i);
}
else
{
*cift+=*(dizi+i);
}
}
}
int main()
{
int tek=0,cift=0,*tamsayidizi,diziboyutu;
puts("Dizinin boyutunu giriniz");
scanf("%d",&diziboyutu);
tamsayidizi=(int*)calloc(diziboyutu,sizeof(int));
puts("Dizinin elemanlarini giriniz");
for (int i=0; i
{
printf("%d. Elemani girin\n",i+1);
scanf("%d",(tamsayidizi+i));
}
tekvecifttopla(tamsayidizi,diziboyutu,&tek,&cift);
printf("Tek sayilar=%d\nCift sayilar=%d",tek,cift);
free(tamsayidizi);
getch();
}------------------------------------------------
-----------------------------hocam bizim daha ilk senemiz fazla anlamıyorum dev c++ kullanıorus o yönteme cevirebilirsen sevinirim konuyla ilgilendiğin için şimdiden teşekkürler
-
#include
#include
#include
#define TEXTSIZE 512
#define BOOL int
#define TRUE 1
#define FALSE 0
#define ARRAY_SIZE(pArr) (sizeof((pArr)) / sizeof((*pArr)))
int SumInteger(char *psz)
{
int i, sum, n, len;
len = strlen(psz);
for (sum = n = i = 0; i < len; ++i)
{
if(psz[i] >= '0' && psz[i] <= '9'){
n *= 10;
n += psz[i] - '0';
}
else{
sum += n;
n = 0;
}
}
return sum + n;
}
void SumSD(int *pArray, int size, int *pSingle, int *pDouble)
{
int i;
int s, d;
for (s = d = i = 0; i < size; ++i)
{
if (pArray[i] & 1)
s += pArray[i];
else
d += pArray[i];
}
*pSingle = s;
*pDouble = d;
}
/*
eger ilk soruyu denemek istiyorsa #define SUMINTEGER
digerini denemek istiyorsan #define SUMARRAY
*/
#define SUMINTEGER
int main(int argc, char **argv)
{
#ifdef SUMINTEGER
char psz[TEXTSIZE];
int sum;
printf("Type : ");
gets(psz);
sum = SumInteger(psz);
printf("\n%d", sum);
#elif define(SUMARRAY)
int pArray[] = {14, 11, 10, 13};
int s, d;
SumSD(pArray, ARRAY_SIZE(pArray), &s, &d);
printf("Single :%d, Double :%d", s, d);
#endif
getchar();
return 0;
}
