C/Data Type/Double
Содержание
A function to output double values in a given width
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_COUNT 100
void show(double array[], size_t array_size, unsigned int field_width);
int main()
{
double array[MAX_COUNT] = {0.0};
int count = 6;
char answer = "n";
array[0] = 123456.123456;
array[1] = 12345.12345;
array[2] = 1234.1234;
array[3] = 123.123;
array[4] = 12.12;
array[5] = 1.1;
show(array, count, 12);
printf("\n\n\n");
show(array, count, 2);
printf("\n\n\n");
show(array, count, 6);
}
void show(double array[], size_t array_size, unsigned int field_width)
{
char format[10] = "%";
char width_str[4];
int i = 0;
int j = 1;
do
{
width_str[i++] = "0"+field_width%10;
}while((field_width /= 10) != 0);
do
{
format[j++] = width_str[--i];
}while(i>0);
format[j] = "\0";
strcat(format, "lf");
for(j = 0 ; j<array_size ; j++)
{
printf("\n");
printf(format, array[j]);
}
}
Calculating average hourly pay rate
#include <stdio.h>
int main()
{
double pay = 0.0;
double hours = 0.0;
int dollars = 0;
int cents = 0;
pay = 10;
hours = 11;
dollars = (int)(pay/hours);
cents = (int)(100.0*(pay/hours - dollars) +0.5);
printf("Your average hourly pay rate is %d dollars and %d cents.\n",
dollars, cents);
}
Calculating the area of a room
#include <stdio.h>
int main()
{
double length = 0.0;
double width = 0.0;
long feet = 0L;
long inches = 0L;
const long inches_per_foot = 12L;
const double inches_per_yard = 36L;
feet = 9;
inches = 11;
length = (feet*inches_per_foot+inches)/inches_per_yard;
feet = 20;
inches = 3;
width = (feet*inches_per_foot+inches)/inches_per_yard;
/* Output the area */
printf("The area of the room is %.2f square yards.\n",length*width);
}
Calculating volume price of alternative products
#include <stdio.h>
int main()
{
double total_price = 0.0;
int type = 0;
int quantity = 0;
const double type1_price = 3.50;
const double type2_price = 5.50;
type = 9;
quantity = 12.12;
total_price = quantity*(type1_price + (type-1)*(type2_price-type1_price));
printf("The price for %d of type %d is $%.2f\n",quantity, type, total_price);
}
Convert double to int
#include <stdio.h>
int main(void)
{
int i;
long double ld;
ld = 10.0;
i = ld; /*convert double to int*/
printf("%d", i);
}
Double calculation: square
#include <stdio.h>
#include <math.h>
int main(void)
{
double i;
for(i = 1.0; i < 101.0; i++) {
printf("square root of %lf = %lf\n", i, sqrt(i));
printf("Whole number part = %d ", (int)sqrt(i));
printf("Fractional part = %lf\n", sqrt( i ) - (int) sqrt( i ));
printf("\n");
}
return 0;
}
Table of reciprocals, squares, cubes, and fourth powers
#include <stdio.h>
int main()
{
double num[11][5];
double value = 0.0;
int y = 0;
int x = 0;
for(y = 0, value = 3.0 ; y<11 ; y++, value += 0.3)
num[y][0] = value;
for(y = 0 ; y<11 ; y++)
{
num[y][1] = 1.0/num[y][0];
num[y][2] = num[y][0]*num[y][0];
num[y][3] = num[y][0]*num[y][0]*num[y][0];
num[y][4] = num[y][0]*num[y][0]*num[y][0]*num[y][0];
}
printf("\n x");
printf(" 1/x");
printf(" x*x");
printf(" x*x*x");
printf(" x*x*x*x");
for(y = 0 ; y<11 ; y++)
{
printf("\n");
for(x = 0 ; x<5 ; x++)
printf("%15.4lf", num[y][x]);
}
}