#include <stdio.h>
int main ()
{
char sentence[1024];
int count[26];
int i, l;
printf("Enter an English sentence :\n");
fgets(sentence,1000,stdin);
l = strlen(sentence);
for (i=0; i<26; i++) count[i] = 0;
for (i=0; i<l; i++) {
if ((sentence[i] >= 'a') && (sentence[i] <= 'z'))
count[sentence[i]-'a']++;
else if ((sentence[i] >= 'A') && (sentence[i] <= 'Z'))
count[sentence[i]-'A']++;
}
printf("The numbers of occurrences of the alphabetic letters in the sentence are :\n");
for (l=i=0; i<26; i++) {
printf("%c(%d)",'a'+i,count[i]);
if (count[i]) l++;
if (i%6==5) printf("\n");
}
printf("\nTotal number of distinct letters : %d\n",l);
}
The response of this program to the seventh sentence is as follows:
Enter an English sentence : The quick brown fox jumps over a lazy dog. The numbers of occurrences of the alphabetic letters in the sentence are : a(2)b(1)c(1)d(1)e(2)f(1) g(1)h(1)i(1)j(1)k(1)l(1) m(1)n(1)o(4)p(1)q(1)r(2) s(1)t(1)u(2)v(1)w(1)x(1) y(1)z(1) Total number of distinct letters : 26This is a sentence containing all the letters of the English alphabet. Such a sentence is called a pangram or a holalphabetic sentence. This sentence is frequently used to test typing skills, becasue, well, because it is a pangram. A shorter pangram is The five boxing wizards jump quickly.
#include <stdio.h>
#include <math.h>
void doSieve ( char *A , int n )
{
int m, i, j;
/* Initialize array */
A[0] = A[1] = 1; /* 0 and 1 are not primes */
for (i=2; i<=n; i++) A[i] = 0; /* Unmark other entries, initially */
i = 0;
m = (int)sqrt((double)n); /* Do this only once outside the loop */
while (i <= m) {
if (A[i] == 0) { /* Find the next unmarked entry */
j = 2 * i;
while (j <= n) {
A[j] = 1; /* mark proper multiples of i */
j += i;
}
}
i++;
}
}
void printPrime ( char *A , int n , int PCNo )
{
int i,j,k;
j = 0;
k = 1000000 + PCNo;
for (i=2; i<=n; i++) {
if (A[i] == 0) { /* if i is prime */
j++;
if (j == k) {
printf("%d-th prime is %d\n",j,i);
return;
}
}
}
printf("The desired prime is not found. Increase n.\n");
}
int main ()
{
int n;
char A[20000000];
int PCNo = 128;
printf("n = "); scanf("%d",&n); printf("%d\n",n);
if (n <= 0) {
fprintf(stderr, "Error: positive integer expected.\n");
exit(1);
}
doSieve(A,n); /* Mark the composites */
printPrime(A,n,PCNo); /* Print the desired prime */
}
Two runs of the program with different values of n are shown below:
n = 15000000 The desired prime is not found. Increase n. n = 16000000 1000128-th prime is 15487939
[Course home] [Home]