#include <stdio.h>
#include <pthread.h>
void *calculate_square(void *arg) {
int number = *((int *)arg);
for (int i = 1; i <= number; i++) {
printf("Square of %d: %d\n", i
, i
* i
); }
return NULL;
}
void *check_even_odd(void *arg) {
int number = *((int *)arg);
if (number % 2 == 0)
printf("%d is an even number\n", number
); else
printf("%d is an odd number\n", number
);
return NULL;
}
void *calculate_average(void *arg) {
int number = *((int *)arg);
int sum = 0;
int temp;
for (int i = 1; i <= number; i++) {
printf("Enter number %d: ", i
); sum += temp;
}
float average = (float)sum / number;
printf("Average: %.2f\n", average
); return NULL;
}
int main() {
printf("21BAI1633, Karthik Vinayan\n");
int n;
pthread_t thread1, thread2, thread3;
pthread_create(&thread1, NULL, calculate_square, &n);
pthread_create(&thread2, NULL, check_even_odd, &n);
pthread_create(&thread3, NULL, calculate_average, &n);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
pthread_join(thread3, NULL);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+Cgp2b2lkICpjYWxjdWxhdGVfc3F1YXJlKHZvaWQgKmFyZykgewogICAgaW50IG51bWJlciA9ICooKGludCAqKWFyZyk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBudW1iZXI7IGkrKykgewogICAgICAgIHByaW50ZigiU3F1YXJlIG9mICVkOiAlZFxuIiwgaSwgaSAqIGkpOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwogICAgcmV0dXJuIE5VTEw7Cn0KCnZvaWQgKmNoZWNrX2V2ZW5fb2RkKHZvaWQgKmFyZykgewogICAgaW50IG51bWJlciA9ICooKGludCAqKWFyZyk7CiAgICBpZiAobnVtYmVyICUgMiA9PSAwKQogICAgICAgIHByaW50ZigiJWQgaXMgYW4gZXZlbiBudW1iZXJcbiIsIG51bWJlcik7CiAgICBlbHNlCiAgICAgICAgcHJpbnRmKCIlZCBpcyBhbiBvZGQgbnVtYmVyXG4iLCBudW1iZXIpOwogICAgCiAgICByZXR1cm4gTlVMTDsKfQoKdm9pZCAqY2FsY3VsYXRlX2F2ZXJhZ2Uodm9pZCAqYXJnKSB7CiAgICBpbnQgbnVtYmVyID0gKigoaW50ICopYXJnKTsKICAgIGludCBzdW0gPSAwOwogICAgaW50IHRlbXA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBudW1iZXI7IGkrKykgewogICAgICAgIHByaW50ZigiRW50ZXIgbnVtYmVyICVkOiAiLCBpKTsKICAgICAgICBzY2FuZigiJWQiLCAmdGVtcCk7CiAgICAgICAgc3VtICs9IHRlbXA7CiAgICB9CiAgICBmbG9hdCBhdmVyYWdlID0gKGZsb2F0KXN1bSAvIG51bWJlcjsKICAgIHByaW50ZigiQXZlcmFnZTogJS4yZlxuIiwgYXZlcmFnZSk7CiAgICByZXR1cm4gTlVMTDsKfQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIjIxQkFJMTYzMywgS2FydGhpayBWaW5heWFuXG4iKTsKICAgIAogICAgaW50IG47CiAgICBwcmludGYoIkVudGVyIGEgbnVtYmVyOiAiKTsKICAgIHNjYW5mKCIlZCIsICZuKTsKICAgIAogICAgcHRocmVhZF90IHRocmVhZDEsIHRocmVhZDIsIHRocmVhZDM7CiAgICBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkMSwgTlVMTCwgY2FsY3VsYXRlX3NxdWFyZSwgJm4pOwogICAgcHRocmVhZF9jcmVhdGUoJnRocmVhZDIsIE5VTEwsIGNoZWNrX2V2ZW5fb2RkLCAmbik7CiAgICBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkMywgTlVMTCwgY2FsY3VsYXRlX2F2ZXJhZ2UsICZuKTsKICAgIAogICAgcHRocmVhZF9qb2luKHRocmVhZDEsIE5VTEwpOwogICAgcHRocmVhZF9qb2luKHRocmVhZDIsIE5VTEwpOwogICAgcHRocmVhZF9qb2luKHRocmVhZDMsIE5VTEwpOwogICAgCiAgICByZXR1cm4gMDsKfQo=