#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PATIENTS 10
// Structure to store patient details
typedef struct {
char name[ 50 ] ;
int age;
char symptoms[ 100 ] ;
int severity; // Higher value means more severe
int priority;
} Patient;
// Function to assign priority based on severity
void assignPriority( Patient patients[ ] , int n) {
for ( int i = 0 ; i < n; i++ ) {
patients[ i] .priority = patients[ i] .severity ; // Priority is based on severity
}
}
// Function to sort patients based on priority (Descending order)
void sortPatientsByPriority( Patient patients[ ] , int n) {
for ( int i = 0 ; i < n - 1 ; i++ ) {
for ( int j = 0 ; j < n - i - 1 ; j++ ) {
if ( patients[ j] .priority < patients[ j + 1 ] .priority ) {
Patient temp = patients[ j] ;
patients[ j] = patients[ j + 1 ] ;
patients[ j + 1 ] = temp;
}
}
}
}
// Function to predict health condition based on symptoms
void predictDisease( Patient * p) {
printf ( "\n Predicted Condition for %s:\n " , p
-> name
) ;
if ( strstr ( p
-> symptoms
, "fever" ) && strstr ( p
-> symptoms
, "cough" ) ) { printf ( "Possible Disease: Flu or COVID-19\n " ) ; } else if ( strstr ( p
-> symptoms
, "chest pain" ) || strstr ( p
-> symptoms
, "shortness of breath" ) ) { printf ( "Possible Disease: Heart Issue\n " ) ; } else if ( strstr ( p
-> symptoms
, "headache" ) && strstr ( p
-> symptoms
, "dizziness" ) ) { printf ( "Possible Disease: Migraine or High BP\n " ) ; } else {
printf ( "General Check-up Recommended.\n " ) ; }
}
// Function to display patient details after scheduling
void displayPatients( Patient patients[ ] , int n) {
printf ( "\n Scheduled Patients List (Based on Priority):\n " ) ; printf ( "------------------------------------------------\n " ) ; printf ( "Priority | Name | Age | Symptoms | Severity\n " ) ; printf ( "------------------------------------------------\n " ) ;
for ( int i = 0 ; i < n; i++ ) {
printf ( "%8d | %-10s | %3d | %-20s | %8d\n " , patients[ i] .priority , patients[ i] .name , patients[ i] .age , patients[ i] .symptoms , patients[ i] .severity ) ;
predictDisease( & patients[ i] ) ;
}
}
int main( ) {
int n;
printf ( "Enter the number of patients (max %d): " , MAX_PATIENTS
) ; if ( n > MAX_PATIENTS) {
printf ( "Maximum number of patients is %d. Exiting...\n " , MAX_PATIENTS
) ; return 1 ;
}
Patient patients[ MAX_PATIENTS] ;
// Input patient details
for ( int i = 0 ; i < n; i++ ) {
printf ( "\n Enter details for patient %d:\n " , i
+ 1 ) ; scanf ( " %[^\n ]s" , patients
[ i
] .
name ) ; scanf ( "%d" , & patients
[ i
] .
age ) ; printf ( "Symptoms (comma-separated): " ) ; scanf ( " %[^\n ]s" , patients
[ i
] .
symptoms ) ; printf ( "Severity (1-10, 10 = Critical): " ) ; scanf ( "%d" , & patients
[ i
] .
severity ) ; }
// Assign priority based on severity
assignPriority( patients, n) ;
// Sort patients based on priority
sortPatientsByPriority( patients, n) ;
// Display scheduled patients
displayPatients( patients, n) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBNQVhfUEFUSUVOVFMgMTAKCi8vIFN0cnVjdHVyZSB0byBzdG9yZSBwYXRpZW50IGRldGFpbHMKdHlwZWRlZiBzdHJ1Y3QgewogICAgY2hhciBuYW1lWzUwXTsKICAgIGludCBhZ2U7CiAgICBjaGFyIHN5bXB0b21zWzEwMF07CiAgICBpbnQgc2V2ZXJpdHk7IC8vIEhpZ2hlciB2YWx1ZSBtZWFucyBtb3JlIHNldmVyZQogICAgaW50IHByaW9yaXR5Owp9IFBhdGllbnQ7CgovLyBGdW5jdGlvbiB0byBhc3NpZ24gcHJpb3JpdHkgYmFzZWQgb24gc2V2ZXJpdHkKdm9pZCBhc3NpZ25Qcmlvcml0eShQYXRpZW50IHBhdGllbnRzW10sIGludCBuKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHBhdGllbnRzW2ldLnByaW9yaXR5ID0gcGF0aWVudHNbaV0uc2V2ZXJpdHk7IC8vIFByaW9yaXR5IGlzIGJhc2VkIG9uIHNldmVyaXR5CiAgICB9Cn0KCi8vIEZ1bmN0aW9uIHRvIHNvcnQgcGF0aWVudHMgYmFzZWQgb24gcHJpb3JpdHkgKERlc2NlbmRpbmcgb3JkZXIpCnZvaWQgc29ydFBhdGllbnRzQnlQcmlvcml0eShQYXRpZW50IHBhdGllbnRzW10sIGludCBuKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG4gLSBpIC0gMTsgaisrKSB7CiAgICAgICAgICAgIGlmIChwYXRpZW50c1tqXS5wcmlvcml0eSA8IHBhdGllbnRzW2ogKyAxXS5wcmlvcml0eSkgewogICAgICAgICAgICAgICAgUGF0aWVudCB0ZW1wID0gcGF0aWVudHNbal07CiAgICAgICAgICAgICAgICBwYXRpZW50c1tqXSA9IHBhdGllbnRzW2ogKyAxXTsKICAgICAgICAgICAgICAgIHBhdGllbnRzW2ogKyAxXSA9IHRlbXA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vIEZ1bmN0aW9uIHRvIHByZWRpY3QgaGVhbHRoIGNvbmRpdGlvbiBiYXNlZCBvbiBzeW1wdG9tcwp2b2lkIHByZWRpY3REaXNlYXNlKFBhdGllbnQgKnApIHsKICAgIHByaW50ZigiXG5QcmVkaWN0ZWQgQ29uZGl0aW9uIGZvciAlczpcbiIsIHAtPm5hbWUpOwogICAgCiAgICBpZiAoc3Ryc3RyKHAtPnN5bXB0b21zLCAiZmV2ZXIiKSAmJiBzdHJzdHIocC0+c3ltcHRvbXMsICJjb3VnaCIpKSB7CiAgICAgICAgcHJpbnRmKCJQb3NzaWJsZSBEaXNlYXNlOiBGbHUgb3IgQ09WSUQtMTlcbiIpOwogICAgfSBlbHNlIGlmIChzdHJzdHIocC0+c3ltcHRvbXMsICJjaGVzdCBwYWluIikgfHwgc3Ryc3RyKHAtPnN5bXB0b21zLCAic2hvcnRuZXNzIG9mIGJyZWF0aCIpKSB7CiAgICAgICAgcHJpbnRmKCJQb3NzaWJsZSBEaXNlYXNlOiBIZWFydCBJc3N1ZVxuIik7CiAgICB9IGVsc2UgaWYgKHN0cnN0cihwLT5zeW1wdG9tcywgImhlYWRhY2hlIikgJiYgc3Ryc3RyKHAtPnN5bXB0b21zLCAiZGl6emluZXNzIikpIHsKICAgICAgICBwcmludGYoIlBvc3NpYmxlIERpc2Vhc2U6IE1pZ3JhaW5lIG9yIEhpZ2ggQlBcbiIpOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludGYoIkdlbmVyYWwgQ2hlY2stdXAgUmVjb21tZW5kZWQuXG4iKTsKICAgIH0KfQoKLy8gRnVuY3Rpb24gdG8gZGlzcGxheSBwYXRpZW50IGRldGFpbHMgYWZ0ZXIgc2NoZWR1bGluZwp2b2lkIGRpc3BsYXlQYXRpZW50cyhQYXRpZW50IHBhdGllbnRzW10sIGludCBuKSB7CiAgICBwcmludGYoIlxuU2NoZWR1bGVkIFBhdGllbnRzIExpc3QgKEJhc2VkIG9uIFByaW9yaXR5KTpcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgcHJpbnRmKCJQcmlvcml0eSB8IE5hbWUgICAgICAgfCBBZ2UgfCBTeW1wdG9tcyAgICAgICAgICAgIHwgU2V2ZXJpdHlcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHByaW50ZigiJThkIHwgJS0xMHMgfCAlM2QgfCAlLTIwcyB8ICU4ZFxuIiwKICAgICAgICAgICAgICAgcGF0aWVudHNbaV0ucHJpb3JpdHksIHBhdGllbnRzW2ldLm5hbWUsIHBhdGllbnRzW2ldLmFnZSwgcGF0aWVudHNbaV0uc3ltcHRvbXMsIHBhdGllbnRzW2ldLnNldmVyaXR5KTsKICAgICAgICBwcmVkaWN0RGlzZWFzZSgmcGF0aWVudHNbaV0pOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgcHJpbnRmKCJFbnRlciB0aGUgbnVtYmVyIG9mIHBhdGllbnRzIChtYXggJWQpOiAiLCBNQVhfUEFUSUVOVFMpOwogICAgc2NhbmYoIiVkIiwgJm4pOwogICAgaWYgKG4gPiBNQVhfUEFUSUVOVFMpIHsKICAgICAgICBwcmludGYoIk1heGltdW0gbnVtYmVyIG9mIHBhdGllbnRzIGlzICVkLiBFeGl0aW5nLi4uXG4iLCBNQVhfUEFUSUVOVFMpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIFBhdGllbnQgcGF0aWVudHNbTUFYX1BBVElFTlRTXTsKCiAgICAvLyBJbnB1dCBwYXRpZW50IGRldGFpbHMKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJcbkVudGVyIGRldGFpbHMgZm9yIHBhdGllbnQgJWQ6XG4iLCBpICsgMSk7CiAgICAgICAgcHJpbnRmKCJOYW1lOiAiKTsKICAgICAgICBzY2FuZigiICVbXlxuXXMiLCBwYXRpZW50c1tpXS5uYW1lKTsKICAgICAgICBwcmludGYoIkFnZTogIik7CiAgICAgICAgc2NhbmYoIiVkIiwgJnBhdGllbnRzW2ldLmFnZSk7CiAgICAgICAgcHJpbnRmKCJTeW1wdG9tcyAoY29tbWEtc2VwYXJhdGVkKTogIik7CiAgICAgICAgc2NhbmYoIiAlW15cbl1zIiwgcGF0aWVudHNbaV0uc3ltcHRvbXMpOwogICAgICAgIHByaW50ZigiU2V2ZXJpdHkgKDEtMTAsIDEwID0gQ3JpdGljYWwpOiAiKTsKICAgICAgICBzY2FuZigiJWQiLCAmcGF0aWVudHNbaV0uc2V2ZXJpdHkpOwogICAgfQoKICAgIC8vIEFzc2lnbiBwcmlvcml0eSBiYXNlZCBvbiBzZXZlcml0eQogICAgYXNzaWduUHJpb3JpdHkocGF0aWVudHMsIG4pOwoKICAgIC8vIFNvcnQgcGF0aWVudHMgYmFzZWQgb24gcHJpb3JpdHkKICAgIHNvcnRQYXRpZW50c0J5UHJpb3JpdHkocGF0aWVudHMsIG4pOwoKICAgIC8vIERpc3BsYXkgc2NoZWR1bGVkIHBhdGllbnRzCiAgICBkaXNwbGF5UGF0aWVudHMocGF0aWVudHMsIG4pOwoKICAgIHJldHVybiAwOwp9Cg==