第八章
1.显示重复数字
#include <stdbool.h>
#include <stdio.h>
int main(void)
{
bool digit_seen[10] = {false};
int digit;
long n;
printf("Enter a number: ");
scanf("%ld", &n);
printf("Repeated digit(s):");
while (n > 0)
{
digit = n % 10;
if (digit_seen[digit] == true)
{
printf("%d ", digit);
}
digit_seen[digit] = true;
n /= 10;
}
printf("\n");
system("pause");
return 0;
}
2.显示重复数字出现次数
#include <stdio.h>
int main(void)
{
long n;
int book[10] = {0};
printf("Enter a number: ");
scanf("%ld", &n);
printf("Digits: 0 1 2 3 4 5 6 7 8 9 \n");
printf("Occurrences: ");
int digit;
while (n > 0)
{
digit = n % 10;
book[digit] ++;
n /= 10;
}
int i;
for (i = 0; i < 10; i ++)
{
printf("%2d ", book[i]);
}
system("pause");
return 0;
}
3.接2,用户可多次查重,并按离开
#include <stdbool.h>
#include <stdio.h>
int main(void)
{
printf(" Order: 0 = exit \n\n");
for(;;)
{
bool digit_seen[10] = {false};
int digit;
long n;
printf("Enter a number: ");
scanf("%ld", &n);
if (n <= 0)
{
break;
}
else
{
for (;;)
{
digit = n % 10;
if (digit_seen[digit] == true)
{
break;
}
digit_seen[digit] = true;
n /= 10;
}
}
if (n > 0)
{
printf("Repeated digit \n");
}
else
printf("No repeated digit \n");
}
system("pause");
return 0;
}
4.接3,计算数组长度
#include <stdio.h>
#define SIZE ((int)(sizeof (a) / sizeof (a[0])))
int main (void)
{
int a[10] = {0};
int i;
printf ("Enter 10 numbers: ");
for (i = 0; i < SIZE ; i ++)
{
scanf ("%d", &a[i]);
}
printf ("In reverse order: ");
for (i = SIZE - 1; i >= 0; i--)
{
printf ("%d ", a[i]);
}
printf("\n");
printf("size of array is: %d \n", SIZE);
system("pause");
return 0;
}
5.计算利息
#include <stdio.h>
#define INITIAL_BALANCE 100.00
int main(void)
{
int i;
int low_rate, num_years;
int month, year;
printf("Enter interest rate: ");
scanf("%d", &low_rate);
printf("Enter number of years: ");
scanf("%d", &num_years);
double value[num_years];
printf("\nYears");
for (i = 0; i < 5; i ++)
{
printf("%6d%%", low_rate + i);
value[i] = INITIAL_BALANCE;
}
printf("\n");
for (year = 1; year <= num_years; year ++)
{
printf("%3d ", year);
for (i = 0; i < num_years; i ++)
{
for (month = 1; month <= 12; month++)
{
value[i] += ((low_rate + i) / 12) / 100.0 * value[i];
}
printf("%7.2f", value[i]);
}
printf("%d\n", num_years);
}
return 0;
}
6.B1FF过滤器
#include <stdio.h>
#define N 40
int main (void)
{
char book[N];
int i, j;
printf ("Enter message: ");
while (((book[i]) = getchar () ) != '\n')
{
i++;
}
printf ("In B1FF-speak: ");
for (j = 0; j < i; j++)
{
if ((book[j] <= 'z') && (book[j] >= 'a'))
{
book[j] = book[j] -'a' + 'A';
}
switch (book[j])
{
case 'A': printf ("4"); break;
case 'B': printf ("8"); break;
case 'E': printf ("3"); break;
case 'I': printf ("1"); break;
case 'O': printf ("0"); break;
case 'S': printf ("5"); break;
default : printf ("%c", book[j]);
break;
}
}
printf ("!!!!!!!!!!");
system("pause");
return 0;
}
7.矩阵求和
#include <stdio.h>
int main(void)
{
int a[5][5] = {0};
int i, j;
for (i = 0; i < 5; i ++)
{
printf("Enter row %d: ", i + 1);
for (j = 0; j < 5; j ++)
{
scanf("%d", &a[i][j]);
}
}
int sum;
printf("Row totals: ");
for (i = 0; i < 5; i ++)
{
for (j = 0; j < 5; j ++)
{
sum += a[i][j];
}
printf("%d ", sum);
sum = 0;
}
printf("\nColumn totals: ");
for (j = 0; j < 5; j ++)
{
for (i = 0; i < 5; i ++)
{
sum += a[i][j];
}
printf("%d ", sum);
sum = 0;
}
system("pause");
return 0;
}
8.测验
#include <stdio.h>
#define N 5
int main(void)
{
int a[N][N];
int i, j;
for (i = 0; i < N; i ++)
{
printf("Enter student %d five-major's point:", i + 1);
for (j = 0; j < N; j ++)
{
scanf("%d", &a[i][j]);
}
}
printf("\n");
int sum = 0;
float average = 0.0f;
for (i = 0; i < N; i ++)
{
for (j = 0; j < N; j ++)
{
sum += a[i][j];
}
average = sum / N;
printf("stduent %d point is%d, average point is %.2f\n", i, sum, average);
sum = 0;
}
printf("\n");
int max, min;
sum = 0;
average = 0.0f;
for (j = 0; j < N; j ++)
{
max = a[0][j];
min = a[0][j];
for (i = 0; i < N; i ++)
{
if (max < a[i][j]) max = a[i][j];
if (min > a[i][j]) min = a[i][j];
sum += a[i][j];
}
average = sum / N;
printf("Major %d average point is %.2f,The highesr is %d,The lowesr\t is %d\n",
j + 1, average, max, min);
sum = 0;
}
return 0;
}