21. februar 2010 - 12:58
#3
Hvis du f ex har en udregning du bruger meget, kan du lægge den i en funktion. Så kan man kalde den funktion med f ex forskellige parametre.
Denne her f ex (som er skrevet af arne_v), tager personnummer som indparameter og checker om det er gyldigt (kan man ikke mere, men bare som eksempel). Så i stedet for at opfinde den dybe tallerken gang efter gang, skriver man en funktion som kan kaldes med en linie.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
static int ix[] = { 0, 1, 2, 3, 4, 5, 7, 8, 9, 10 };
static int c[] = { 4, 3, 2, 7, 6, 5, 4, 3, 2, 1 };
int isvalid(char *number)
{
int i,d,m,y,temp;
char buf[3];
if (strlen(number) != 11)
{
return 0;
}
if (number[6] != '-')
{
return 0;
}
for (i = 0; i < 10; i++)
{
if (!isdigit(number[ix[i]]))
{
return 0;
}
}
strncpy(buf,number,2);
buf[2]='\0';
d=atoi(buf);
strncpy(buf,number+2,2);
buf[2]='\0';
m=atoi(buf);
strncpy(buf,number+4,2);
buf[2]='\0';
y=atoi(buf);
if (d > 31)
{
return 0;
}
if (m > 12)
{
return 0;
}
temp=0;
for (i = 0; i < 10; i++) {
temp = temp + c[i] * (number[ix[i]] - '0');
}
return ((temp % 11) == 0);
}
void test(char *s)
{
printf("%s -> %d\n",s,isvalid(s));
}
int main()
{
test("123456-1234");
test("111111-1118");
return 0;
}
21. februar 2010 - 13:04
#6
fx
#include <iostream>
using namespace std;
void addition(int a, int b)
{
cout << a + b;
}
int main()
{
int a = 2, b = 2;
addition(a, b);
}
Det smarte er så at du kan blive ved med at kalde addition med forskelle variabler...