周一:题目:(老师布置的,答案是用循环做,我觉得太长,用了数组)
给一个不多于5位的正整数,要求:
1:求出它是几位数;
2:分别输出每一位的数字;
3:按逆序输出各位数字,例如原数为321,应输出123;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
int n,i;
char a[20]; //定义一个字符数组
printf("shuru");
gets_s(a); //将输入的数据给数组
n = strlen(a); //这里测出输入字符的长度,间接的测出数字的个数
printf("%d\n", n);
for (i = 0; i <= n; ++i) {
printf("%c\t", a[i]);
} //输出每一个数
printf("\n");
for (i = 0; i <= n; ++i) {
printf("%c", a[n - i]); //将数字逆序输出
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j;
int a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };//将a数组赋值
int b[3][3]; //先定义一个二维数组
printf("shuru:", a[3][3]);
printf("\n");
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
printf("%3d", a[i][j]);
b[i][j] = a[j][i]; //将a数组的值逐个输出,并且将a的值赋给b
}
printf("\n"); //注意这里的printf(“\n”)要在for循环内,不然会成直线排列
}
printf("shuchu:");
printf("\n");
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
printf("%3d", b[i][j]);
}
printf("\n"); //将b数组的数据输出
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j;
int a[10][10];
for (i = 0; i <= 9; i++)
{
a[i][0] = 1;
a[i][i] = 1;
}
for (i = 2; i <= 9; i++)
{
for (j = 1; j <= i - 1; j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
//7到18行是对数组a赋值
for (i = 0; i <= 9; i++)
{
for (j = 0; j <= i; j++)
//注意这里如果要打花括号不能将printf一起包括进去
printf("%6d", a[i][j]);
printf("\n");
}
//将各个数据进行排列
system("pause");
return 0;
}
二进制转换八进制
思路是二先转八,但我定义的函数是求那个输入了几个数字,因为在主函数中我需要跳出循环,运行是能运行,但是不管输入什么二进制数转换的八进制都等于1
#include<stdio.h> //学长帮我看看呗,我调用函数是不是错了
#include<stdlib.h>
#include<math.h>
int n ;
int j;
int main()
{
int put( int j);
int a[22];
int i,k;
int sum = 0;
printf("请输入二进制数:");
printf("\n");
n = put(j);
for (i = 0; i <= n; i++)
{
scanf_s("%d",&a[i]);
k = pow(a[i], i);
sum = sum + k;
}
printf("八进制数%o", sum);
system("pause");
return 0;
}
int put(int j)
{
int n = 0;
printf("请重复输入一遍:", j);
scanf_s("%d", &j);
while (j / 10 == !0)
{
n = n + 1;
}
return(n);
}