#include <stdio.h>
int main() {
int factoriesCount, factoryNumber, productsCount, productNumber, totalProducts = 0, mostProfitableFactory = 0;
double manufacturingCost, retailPrice, factoryRevenue, totalRevenue = 0.0, factoryProfit, totalProfit = 0.0, highestFactoryRevenue = 0.0;
// Ask user for the number of factories with validation
printf("Enter the number of factories (a positive number): ");
while (1) {
if (scanf("%d", &factoriesCount) == 1 && factoriesCount > 0) {
break;
} else {
printf("Invalid input. Please enter a positive number.\n");
while (getchar() != '\n'); // Clear input buffer
printf("Enter the number of factories (a positive number): ");
}
}
for (factoryNumber = 1; factoryNumber <= factoriesCount; factoryNumber++) {
printf("Enter the number of products for Factory %d (a positive number): ", factoryNumber);
while (1) {
if (scanf("%d", &productsCount) == 1 && productsCount > 0) {
break;
} else {
printf("Invalid input. Please enter a positive number.\n");
while (getchar() != '\n'); // Clear input buffer
printf("Enter the number of products for Factory %d (a positive number): ", factoryNumber);
}
}
factoryRevenue = 0.0;
factoryProfit = 0.0;
for (productNumber = 1; productNumber <= productsCount; productNumber++) {
printf("Enter the manufacturing cost for Product %d in Factory %d (a non-negative number): ", productNumber, factoryNumber);
while (1) {
if (scanf("%lf", &manufacturingCost) == 1 && manufacturingCost >= 0) {
break;
} else {
printf("Invalid input. Please enter a non-negative number.\n");
while (getchar() != '\n'); // Clear input buffer
printf("Enter the manufacturing cost for Product %d in Factory %d (a non-negative number): ", productNumber, factoryNumber);
}
}
printf("Enter the retail price for Product %d in Factory %d (a non-negative number): ", productNumber, factoryNumber);
while (1) {
if (scanf("%lf", &retailPrice) == 1 && retailPrice >= 0) {
break;
} else {
printf("Invalid input. Please enter a non-negative number.\n");
while (getchar() != '\n'); // Clear input buffer
printf("Enter the retail price for Product %d in Factory %d (a non-negative number): ", productNumber, factoryNumber);
}
}
totalProducts++;
factoryRevenue += retailPrice;
factoryProfit += (retailPrice - manufacturingCost);
}
totalRevenue += factoryRevenue;
totalProfit += factoryProfit;
if (factoryRevenue > highestFactoryRevenue) {
highestFactoryRevenue = factoryRevenue;
mostProfitableFactory = factoryNumber;
}
}
printf("Total Factories: %d\n", factoriesCount);
printf("Total Products: %d\n", totalProducts);
printf("Total Revenue: $%.2f\n", totalRevenue);
printf("Total Profit: $%.2f\n", totalProfit);
printf("Most Profitable Factory: Factory %d\n", mostProfitableFactory);
return 0;
}