第十二周

周一:题目:(老师布置的,答案是用循环做,我觉得太长,用了数组)
          给一个不多于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);
}