单词:由空格分开的连续字母数字串。
#include <stdio.h>
char * mygets(char *str)
{
int i = 0;
while((str[i] = getchar()) != '\n')
{
i++;
}
str[i] = '\0';
}
int main()
{
int word_n=0;
char str[100];
int flag=0;
int i=0;
printf("Please input a string with black: \n");
mygets(str);
// while((ch = getchar()) != '\n');
while(str[i] != '\0')
{
if(str[i] != ' ')
{
if(flag==0)
{
word_n++;
flag=1;
}
}
else
{
flag=0;
}
i++;
}
printf("%d\n",word_n);
return 0;
}
2、整数数组的冒泡排序(从小到大)。
#include <stdio.h>
#define SIZE 10
int main()
{
int i,j;
int temp;
int n[SIZE];
for(i=0;i<SIZE;i++)
scanf("%d",&n[i]);
for(i=0;i<SIZE;i++)
{
for(j=0;i+j<SIZE-1;j++)
{
if(n[j]>n[j+1])
{
temp=n[j];
n[j]=n[j+1];
n[j+1]=temp;
}
}
}
for(i=0;i<SIZE;i++)
{
printf("%5d",n[i]);
}
printf("\n");
return 0;
}
3、将整数转换为10进制、2进制、16进制的数字串。
#include <stdio.h>
void to_binary(unsigned long);
void to_hex(unsigned long);
void to_decimdism(unsigned long);
int main()
{
unsigned long n;
printf("Enter an integer: \n");
while(scanf("%d",&n))
{
printf("div equivalent: \n");
to_decimdism(n);
printf("\n");
printf("binary equivalent: \n");
to_binary(n);
printf("\n");
printf("hex equivalent: \n");
to_hex(n);
printf("\n");
printf("Enter next integer(q to quit): \n");
}
printf("done!\n");
return 0;
}
void to_decimdism(unsigned long n)
{
int r;
r=n%10;
if(n>=10)
to_decimdism(n/10);
putchar('0'+r);
return;
}
void to_binary(unsigned long n)
{
int r;
r=n%2;
if(n>=2)
to_binary(n/2);
putchar('0'+r);
return;
}
void to_hex(unsigned long n)
{
int r;
r=n%16;
if(n>=16)
to_hex(n/16);
if(r>=10)
putchar('7'+r);
else
putchar('0'+r);
return;
}