2012年
1、质因数分解(✔)
for(i = 2;i<=n;i++)
{
//先找到可分解的最小质数
while(n % i == 0)
{
printf("%d",i);
n /= i;//更新n的值
if(n != 1)
printf("*");
}
}
2、文件读写:统计字符串中单词的个数及单词出现的次数(hard)
//统计单词出现的个数
int upfst(char *p)
{
int flag = 0; //判断前一字符是否为空格标志
int count = 0; //统计单词个数
//for (;*p;p++)
while(*p)
{
if (flag == 1) //前一字符不为空格
{
if (*p == ' ')
flag = 0;
}
else //前一字符是空格操作
{
if (*p != ' ')
{
flag = 1;
*p = toupper(*p); //#include<ctype.h>
// *p = *p - 32; //转大写
count++;
}
}
p++;
}
return count;
}
3、将十进制数转化为二进制数
int CovertDecimalToBinary(int n)
{
//十进制转二进制
int temp = 1;//控制每一轮余数存放的位置:个位、十位。。。
int remainder,res = 0;
while(n != 0)
{
remainder = n%2;
n /= 2;
res = res + temp*remainder;
temp *= 10;
}
return res;
}
/***
for (c = 31; c >= 0; c--)
{
k = n >> c;
if (k & 1)
printf("1");
else
printf("0");
}
***/
4、十六进制加法
int main(int argc, char *argv[]) {
int t;
char op;
int a,b;
//%x---十六进制
//%o---八进制
scanf("%x%c%x",&a,&op,&b);
if(op=='+')
{
printf("%x\n",a+b);
}
if(op=='-')
{
printf("%x\n",a-b);
}
return 0;
}
5、判断一个数是否是素数及对称数(✔)
6、矩阵操作
//二维数组作为函数参数必须指明列数
void add_two_matrix(int row,int column,int a[][3],int b[][3],int result[][3])
{
int i,j;
for(i = 0;i<row;i++)
{
for(j = 0;j<column;j++)
{
result[i][j] = a[i][j] + b[i][j];
}
}
}