改编java趣味100题,c语言版

1、C语言版金字塔

#include <stdio.h>

int main()
{
    int n,i,j,k;
    scanf("%d",&n);
  //有多少行,有多少列。其实是个正方形。 
   for(i=1;i<=n;i++)
   {
       //根据i来打印有多少个空格 i=1 n-i个空格。i=2,n-2个空格 
     for(j=1;j<=n-i;j++) 
        printf(" ");
        //根据i来定义★ ,奇数个★ 
     for(k=1;k<=2*i-1;k++)
      printf("*");
      printf("\n");          
   }
   
    
    return 0;
}

 2、九九乘法表格

 

#include <stdio.h>

int main()
{
    int i,j;
    //有多少行,9行 
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
         printf("%d*%d=%d\t",i,j,i*j);        
        }
        printf("\n");        
    }    
    return 0;
}

 

 5、杨辉三角

#include <stdio.h>
void show(int n)
    {
        int x,y,z;
        int s[n + 1][n + 1];// 定义二维数组,因为是n行,所以定义n+1,防止溢出(循环从1开始)
        for (x = 1; x <= n; x++)// 此大循环用于控制行数
        {
            for (z = 1; z <= n + 1 - x; z++)// 此小循环用于控制每行前面的空格数,越往后越不对齐,自己调整一下
            {
                printf(" ");
            }
            for (y = 1; y <= x; y++)// 此循环用于控制每行个数
            {
                if (y == 1)// 固定每行第一个数的值,并赋予二维数组,并打印
                {
                    printf("%d ",y);
                    s[x][y] = 1;
                }
                else if (y == x)// 固定每行最后一个数的值,并赋予二维数组,并打印
                {
                    printf("1  ");
                    s[x][y] = 1;
                }
                else// 用于打印出除开每行第一个与最后一个的中间数值,并赋予二维数组
                {
                    printf("%d ",s[x - 1][y - 1] + s[x - 1][y]);// 每一行的中间数值,都是由上一行的s[x-1][y-1]+s[x-1][y]相加而得到,并赋予二维数组
                    s[x][y] = s[x - 1][y - 1] + s[x - 1][y]; //记录一下所在的值,为下一行做准备
                }
            }
            printf("\n");// 换行
        }

    }

int main()
{
    int i,j,n;
        scanf("%d",&n);          
        show(n);
        
    return 0;
}

 

4、调用一个函数再打印出来。

#include <stdio.h>
void show(int n)
    {
            printf("%d",n);
    }
int main()
{
    int i,j,n;
        scanf("%d",&n);
      // 如果用这句代替上面那句,就乱了。 scanf("请输入一个数",&n); 
 //这样也不行    scanf("请输入一个数%d",&n);
// printf("%d",n); show(n); return 0; }

 

附:

java vs c 
读一个整数  int a = cin.nextInt(); 相当于 scanf("%d", &a);
 
读一个字符串 String s = cin.next(); 相当于 scanf("%s", s);
 
读一个浮点数 double t = cin.nextDouble(); 相当于 scanf("%lf", t);
 
读取整行数据 String s = cin.nextLine() 相当于 gets(s);
 
判断是否有下一个输出 while (cin.hasNext) 相当于 while (scanf("%d", &n) != EOF)
 
输出 System.out.printf(); 相当于 printf();