C语言比C#语言难吗?

Python011

C语言比C#语言难吗?,第1张

c#是微软推出一种类似java的编程语言,因为整体架构完全由微软提供,各类可视化编程组件让c#.net可以向mfc编程一样。而c语言因为具有操作系统无关的特性,同时c语言相比c#语言要更低级一些,所以c语言的学习曲线相比C#更为陡峭(更难学)。再加上c语言的工具集众多,所以c语言在客观上确实要比C#难于上手。

#include <stdio.h>

#defineDST_NUM6174

void ReSort(char c[], int len)

int MaxNum(char c[], int len)

int MinNum(char c[], int len)

void GetChars(unsigned int num, char c[], int len)

int count = 0

int func(unsigned int num)

{

int res

char c[4]

GetChars(num, c, 4)

ReSort(c, 4)

res = MaxNum(c, 4) - MinNum(c, 4)

count++

if(res == DST_NUM) return count

return func(res)

}

void main()

{

unsigned int num

while(scanf("%d", &num))

{

getchar()

printf("%d\n", func(num))

count = 0

}

}

void GetChars(unsigned int num, char c[], int len)

{

for(int i = 0i <leni++)

{

c[i] = num % 10 + '0'

num = num / 10

}

}

void ReSort(char c[], int len)

{

int i, j

char tmp

for(i = len - 1i >0i--)

{

for(j = 0j <ij++)

{

if(c[j] >c[j+1])

{

tmp = c[j]

c[j] = c[j+1]

c[j+1] = tmp

}

}

}

}

int MaxNum(char c[], int len)

{

unsigned int num = 0

for(int i = len - 1i >= 0i--)

{

num *= 10

num += (c[i] - '0')

}

return num

}

int MinNum(char c[], int len)

{

unsigned int num = 0

for(int i = 0i <leni++)

{

num *= 10

num += (c[i] - '0')

}

return num

}

更快一点的方法:

先把字符串全部反转 network 变成 krowten

然后把前面4位和后面3位分别反转 workten worknet

要交换的次数为 2n 次

下面是完整的测试程序:

#include <stdio.h>

//反转一个字符串

void reverse(char * begin , char * end)

{

char tmp

while(begin <end)

{

tmp = *begin

*(begin++) = *end

*(end--) = tmp

}

}

//字符串左位移

void shift(char * str , int mov)

{

int size = strlen(str)

reverse(str , str + size - 1)

reverse(str , str + mov - 1)

reverse(str + mov , str + size - 1)

}

int main()

{

char test[] = "helloworld"

shift(test , 5)

printf("%s",test)

return 0

}