/**/ if (t % 2 == 0) { Node *tmp = (Node*)malloc(sizeof(Node)); p3->next = tmp; tmp->data = p3->data; tmp->next = NULL; }
p3->next = tmp
, бесследно пропадает указатель, который был в p3->next
. Все функции из пакета возвращают число int.
#include <iostream>
using namespace std;
int main()
{
int n;
char c;
cin >> n;
cin.get(c);
cout << n << " " << int(c) << endl;
return 0;
}
[guest@localhost cpp]$ .iso++ t.cpp -o t
[guest@localhost cpp]$ ./t
123
123 10
[guest@localhost cpp]$
#include <stdio.h>
int func1()
{
return 5;
}
int func2(int x)
{
return x * 2;
}
int func3(int x)
{
return x * 3 + 1;
}
int main(void)
{
printf("%d\n", func3(func2(func1())));
return 0;
}
[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
31
[guest@localhost c]$
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int c, wassp;
wassp = 1;
while ((c = getchar()) != EOF) {
if (isspace(c))
wassp = 1;
else if (wassp) {
wassp = 0;
putchar(c);
}
}
putchar('\n');
return 0;
}
[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ echo "abcd efgh ijkl" | ./t
aei
[guest@localhost c]$
Цель моей задачи овладеть макросами
int func(int x)
{
return x / 10;
}
...
a = func(a);
#include <stdio.h>
struct a {
int a, b, c;
};
struct b {
double a, b, c, d;
};
struct c {
char s[100];
};
struct d {
int a, b, c;
double n[10];
};
union x {
struct a a;
struct b b;
struct c c;
struct d d;
};
typedef struct {
enum { A, B, C, D } type;
union x value;
} Obj;
int main(void)
{
Obj objects[100], *pobj;
int n;
int i;
objects[0].type = A;
objects[0].value.a.a = 1;
objects[0].value.a.b = 2;
objects[0].value.a.c = 3;
objects[1].type = B;
objects[1].value.b.a = 1.5;
objects[1].value.b.b = 2.5;
objects[1].value.b.c = 3.5;
objects[1].value.b.d = 4.5;
objects[2].type = C;
sprintf(objects[2].value.c.s, "abc");
objects[3].type = A;
objects[3].value.a.a = 4;
objects[3].value.a.b = 5;
objects[3].value.a.c = 6;
n = 4;
for (i = 0; i < n; i++) {
pobj = objects + i;
switch (pobj->type) {
case A:
printf("A: %d %d %d\n",
pobj->value.a.a,
pobj->value.a.b,
pobj->value.a.c);
break;
case B:
printf("B: %g %g %g %g\n",
pobj->value.b.a,
pobj->value.b.b,
pobj->value.b.c,
pobj->value.b.d);
break;
case C:
printf("C: %s\n", pobj->value.c.s);
break;
case D:
printf("D: %g\n", pobj->value.d.n[0]);
break;
}
}
return 0;
}
[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
A: 1 2 3
B: 1.5 2.5 3.5 4.5
C: abc
A: 4 5 6
[guest@localhost c]$
Или хотя бы расскажите, что он делает.
#include <stdio.h>
int main(void)
{
enum { A, B, C };
{
enum { A = 10 };
printf("%d\n", A);
}
printf("%d %d %d\n", A, B, C);
return 0;
}
[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
10
0 1 2
[guest@localhost c]$