C/VC 进制数之间的转换 矩阵转置 单词计数

92 篇文章 1 订阅
21 篇文章 0 订阅

 十进制 ==》 二进制   十进制 ==》 十六进制    十六进制 ==》 十进制   矩阵转置   单词计数   代码复制到编译器直接可运行成功

/* 将任一整数转换为二进制形式 */
#include <stdio.h>
#include <conio.h>

void printb(int x, int n);
void main()
{
  int x,n;
  puts("Input an integer: ");
  scanf("%d", &x);
  printf("You input a decimal is :%d\n", x);
  puts("After change to binary is: \n");
/*   printb(x, sizeof(x)*8); */
  n=sizeof(x)*8;
  while(n>0)
  {
     putchar( '0'+((unsigned)(x&(1<<(n-1)))>>(n-1)) );
     n--;
  }
  puts("\n\a\2a\1a\3a\4a\5a\6a");
  getch();
}

void printb(int x, int n)
{
  if(n > 0)
  {
     putchar( \'0\'+((x&(1<<(n-1)))>>(n-1)) );
     printb(x,n-1);
  }
}
/* 十进制转换成十六进制 */

#include "Stdio.h"

int main(void)
{
    int n, i=0,k;
    int t;
    char c;
    char hex[100]={0};
    char temp[100]={0};
    printf("Input interger number: ");
    scanf("%d", &n);
    while(n>0)
    {
       k=n%16;
       if(k>=0&&k<=9)
         c='0'+k;
         else if(k>=10)
            c='a'+(k-10);
        temp[i]=c;
        i++;
       n=n/16;
    }
    for(k=0;k<i/2;k++)
     {t=temp[k]; temp[k]=temp[i-k-1];temp[i-k-1]=t;}
    printf("%sH",temp);
    getch();
  return 0;
}
/* 标准文档模板 */
/*十六进制转换成十进制*/
#include "Stdio.h"
#include "conio.h"
#include "string.h"
#include "math.h"
#define MAXSIZE 100

int htoi(char *s);
int main(void)
{
    /* 此处添加你自己的代码 */
    
    char hex[MAXSIZE]={0};
    int n,i=0;
    char ch;
    printf("Input a hex(十六进制) number: ");
    while((ch=getchar())!=EOF && i<MAXSIZE)
    {	
        if(ch>='0'&&ch<='9'||ch>='a'&&ch<='f'||ch>='A'&&ch<='F')
    	{
            hex[i]=ch;
        	i++;
    	}
        else
    	{
            fflush(stdin);
            hex[i]='\0';
            printf("The hex %s to decimal is: %d\n",hex, htoi(hex));
            printf("Continue or quit?(Y/N)");
            if((ch=getchar())=='N'|| ch=='n')
    		{
            	break;
    		}
        	i=0;
            fflush(stdin);
    	}
//      fflush(stdin);
//      printf("Input a hex(十六进制) number: ");
    }
    
//  getch();
    return 0;
}

int htoi(char *s)
{
    int len,i;
    int n=0;
    len = strlen(s);
    for(i=0;i<len&&s[i]!='\0';i++)
    {
        if(s[i]>='0'&&s[i]<='9')
    	{
            n=n+((s[i]-'0')*pow(16,len-i-1));
    	}
        else if(s[i]>='a'&&s[i]<='f')
    	{
            n=n+((10+(s[i]-'a'))*pow(16,len-i-1));
        }
        else if(s[i]>='A'&&s[i]<='F')
    	{
            n=n+((10+(s[i]-'A'))*pow(16,len-i-1));
    	}
    }
    return n;
}

矩阵转置代码

/* 标准文档模板 */
//矩阵转置代码
#include "Stdio.h"
#define N 5

void printRect(int *a[]);
void convertRect(int *a[]);
int main(void)
{
    int rect[N][N];
    int i,j;
    srand((unsigned)time(NULL));
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        {
          rect[i][j]=rand();
        }
    puts("Before convert:\n");
    printRect(rect);
    convertRect(rect);
    puts("After convert:\n");
    printRect(rect);
    getch();
    return 0;
}

void printRect(int *a[])
{
    int i,j;
   for(i=0;i<N;i++)
   {
      for(j=0;j<N;j++)
        {
          printf("%10d",a[i][j]);
        }
      puts("\n");
  }
}
void convertRect(int *a[])
{
    int i,j;
    int t;
    for(i=0;i<N;i++)
      for(j=i+1;j<N;j++)
        {
          t =a[i][j];
          a[i][j]=a[j][i];
          a[j][i]=t;
        }
}

 

/*6、  编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以"000"作为字符串输入结束标志,例如:
Twinkle twinkle little star 000(回车)
twinkle  little  star
2      1     1    

计算单词个数

*/ #include "stdio.h" /*#include "malloc.h"*/ #include "stdlib.h" #include <string.h> #define MAXSIZE 100 char *alpha[MAXSIZE] = {0}; // 保存单词 int num[MAXSIZE] = {0}; //保存各单词对应的个数 void countAlpha(char *buf, int size); void main() { char dateBuf[200]; int len = 0; int k; printf("Please input a string and result with 000: \n"); // dateBuf = malloc(200*sizeof(char)); // for char *dateBuf if (dateBuf == NULL) exit(1); // scanf("%s", dateBuf); gets(dateBuf); len = strlen(dateBuf); countAlpha(dateBuf, len); printf("\nAlpha\tcount\n\n"); // puts(dateBuf); // free(dateBuf); for (k = 0; num[k] != 0; k++) { printf("%s\t%d\n", alpha[k], num[k]); } getch(); //free // for (k = 0; alpha[k] != NULL; k++) // { // if (alpha) // free(alpha[k]); // } } void countAlpha( char *buf, int size ) { // if(buf == NULL) return; int i = 0, j = 0; int flag; char temp[100] = {0}; while(i < size) { flag = 0; while (buf[i] == ' ' || buf[i] == '\t') { i++; flag = 1;} if (buf[i] >= 65 && buf[i] < 91) buf[i] += 32; if (!flag) { temp[j] = buf[i]; j++; i++; } else if (flag && j > 0) { int k = 0, flag2 = 0; if (strcmp(temp, "000") == 0) return; while(num[k] != 0) k++; alpha[k] = malloc(strlen(temp)); for (k = 0; num[k] != 0; k++) { if ( strcmp(temp, alpha[k]) == 0 ) { flag2 = 1; num[k]++; break; } } if (!flag2) { strcpy(alpha[k], temp); num[k] = 1; } j = 0; memset(temp, '\0', 100); } } }





 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值