2012上机

2019-02-27  本文已影响0人  Chris_PaulCP3

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];
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读