十进制 ==》 二进制 十进制 ==》 十六进制 十六进制 ==》 十进制 矩阵转置 单词计数 代码复制到编译器直接可运行成功
/* 将任一整数转换为二进制形式 */
#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);
}
}
}