1.编写程序:输入一个整数,将该数转变为二进制表示并存放在数组中输出。
#include<stdio.h>
#include<math.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[32] = { 0 };
int i = 0;
int j = 0;
long long x = 0;
while (n)
{
for (i = 31; i >= 0; i--)
{
x = pow(2, i);
if (((n>x)&&(n / x >0))||n==x)
{
arr[i] = 1;
n -= x;
}
}
}
for (i = 31; i >=0; i--)
{
if (arr[i] != 0)
{
j = i;
break;
}
}
for (i = j; i >= 0; i--)
{
printf("%d", arr[i]);
}
return 0;
}
本题本人的算法可能比较冗长,大家还可以尝试使用先%2,再/2的方法。在此不再赘述。
2.通过循环按行输入一个5*5的二维数组a赋1-25的自然数,然后输出该数组的做下半三角。
int main()
{
int arr[5][5] = { 0 };
int i = 0;
int j = 0;
for (i = 0; i <= 4; i++)
{
for (j = 0; j <= 4; j++)
{
arr[i][j] = 5 * i + j + 1;
}
}
for (i = 0; i <= 4; i++)
{
for (j = 0; j <= i; j++)
{
printf("%2d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
3.编写程序:要求输入一个字符串,删除重复的字符后输出新的字符串。
int main()
{
char s[20] = { 0 };
gets(s);
int sz = strlen(s);
int i = 0;
int j = 0;
for (i = 0; i <sz; i++)
{
while (i)
{
for (j = i-1; j >= 0; j--)
{
if (s[i] == s[j])
{
i++;
break;
}
}
if (j <0)
break;
}
printf("%c", s[i]);
}
return 0;
}
4.编写程序:输入10个整数,查找并打印不相同的数字个数。
int main()
{
int arr[10] = { 0 };
int i = 0;
int n = 0;
int j = 0;
for (i = 0; i <= 9; i++)
{
scanf("%d", &arr[i]);
}
for (i = 0; i <= 8; i++)
{
for (j = i + 1; j <= 9; j++)
{
if (arr[i] == arr[j])
{
arr[j] = -1;
}
}
}
for (i = 0; i <= 9; i++)
{
if (arr[i] != -1)
n++;
}
printf("%d", n);
return 0;
}
本篇文章所使用算法均为本人个人所想,然而个人水平有限,可能有些方法比较复杂,敬请各位谅解,如有错误欢迎指正交流。
本文到此结束,感谢大家的阅读,欢迎大家点赞评论互关,祝大家万事如意。