精华内容
下载资源
问答
  • -----------android培训、java培训、java学习型技术博客、期待与您交流!------------  用printf函数、数组和循环结构输出特殊图形  printf函数是C语言中最常用到的函数之一。...示例1:输出一个如下的菱形   

       -----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

    用printf函数、数组和循环结构输出特殊图形

         printf函数是C语言中最常用到的函数之一。下面通过三个例子总结如何使用printf函数和其它函数输出一些图形,例子出现的顺序是由简单到复杂。


    示例1:输出一个如下的菱形  

                   *   
         ***    
        *****   
      *******  
    *********
      ******* 
       *****   
         ***   
           *     

    程序如下:

    #include<stdio.h>
    #include<stdlib.h>
    void main()
    {
    printf("        *      \n");
    printf("      ***    \n");
    printf("    *****   \n");
    printf(" *******  \n");
    printf("*********\n");
    printf("  ******* \n");
    printf("   *****   \n");
    printf("     ***    \n");
    printf("       *     \n");
    system("pause");
    }


    示例2:输入正整数n<=20,输出一个n层的倒三角形。

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    int n;
    scanf_s("%d", &n);


    char a[200][200] = {"\0"};
    for (int i = 0; i < n;i++)
    for (int j = i; j < 2 * n - i - 1; j++)
    {
    a[i][j] = '#';
    }
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < 2 * n - 1; j++)
    {
    printf("%c", a[i][j]);
    }
    printf("\n");
    }
    system("pause");
    return 0;

    }

    示例3:给定正整数n和m,输出n*m的矩形图案,要求图形最外层由‘#’构成,里层由‘*’构成。

    输入格式:第一行为行为测试数据T(T<=20),表示一共要输入多少组数据进行测试;

                        第二行为n m,表示长方形的长和宽。

    输入样例:

    3

    1 1

    2 2 

    3 3

    输出样例:

    #


    ##

    ##


    ###

    #*#

    ###

    程序如下:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    int T, M[20], N[20];
    scanf_s("%d", &T);
    for (int i = 0; i < T; i++)
    {
    scanf_s("%d", &M[i]);
    scanf_s("%d", &N[i]);
    }
    for (int i = 0; i < T; i++)
    {
    for (int j = 0; j < M[i]; j++)
    {
    for (int k = 0; k < N[i]; k++)
    {
    if (j == 0 || j == M[i] - 1 || k == 0 || k == N[i] - 1)
    printf("#");
    else
            printf("*");
    }
    printf("\n");
    }
    }
    system("pause");
    return 0;
    }


        综上三个例子,我们可以看出,当要求输出一个小范围特定的图形是,我们可以直接把图像原样写入到printf函数中即可,但当要求输入一个任意行的图形是,我们只能通过寻找规律,利用循环来写相应的程序。以上两种都属于比较简单的情形,当要求输入T个图形,每个图形有n行m列时,无疑增加了我们的难度,这时我们就不得不用数组了,如示例三,我们能想到用数组,但是用二维数组呢?还是用三维数组呢?或者一维数组就可以完成输出?我们最简单的做法是先假设它只有一个图形(即循环的内层是只有一个图形的情形),那么我们再对这个图形的每一行每一列进行for循环,看它是否满足条件,满足则执行循环,不满足则不执行。这三个例子主要是为了探讨和说明到底怎样用数组使程序更简洁易懂。

    (本人初学者,C语言的学习还存在很多的疑惑,本文如有错误和需要改进的地方望大家指出!)感谢您的阅读!





    展开全文
  • \n%%c输出一个汉字:%c",string[0]);//不能输出单个汉字 printf("\n%%lc输出一个汉字:%lc",string[0]);//不能输出单个汉字 printf("\n%%wc输出一个汉字:%wc"...
  • 题目:从键盘输入一个字符串,删除该字符串的所有首部和尾部数字字符,输出修改后的字符串以及该字符串的长度(限定在一个数组内进行)说明:数组长度可定义为50或100,输出的时候统一写成 printf("%s* %dn", a, ...

    题目:

    从键盘输入一个字符串,删除该字符串的所有首部和尾部数字字符,输出修改后的字符串以及该字符串的长度(限定在一个数组内进行)

    说明:
    数组长度可定义为50或100,输出的时候统一写成

    printf("%s* %dn", a, strlen(a));//a是数组名,数组名可任意命名
    

    举例:
    输入的字符串为:

    ,删除首部和尾部数字字符后字符串变成:
    ,长度为

    如何用C语言实现?

    #include <stdio.h>
    #include <string.h>
    int main(){
        char a[100];//定义长度为100的数组
        int i,n;
        printf("Please enter a string:n");
        scanf("%s",a);//从键盘接收字符
        n=strlen(a);//获得a的长度,注意最后一个是'0'是字符串结尾标记,故而for循环的时候要n--
        for(n--;a[n]>='0' && a[n]<='9';n--);
    /*从单词的最后第一个字母往前依次循环判断是否为数字,如果是什么也不做。*/
        a[n+1]='0';//如果从后往前第n的字母不是数字,那么就将n+1标记为字符串结尾
        for(i=n=0;a[n]>='0' && a[n]<='9';n++);
    /*从单词字母的第一个字母往后依次循环判断是否为数字,如果是什么也不做。*/
        while(a[i++]=a[n++]);
    /*循环,将第一个字母(非数字)给a0,第二个给字符(无论是不是数字)给a1*/
        printf("%s* %dn", a, strlen(a));
    /*
    输出的时候遇见'0'就会结束,保证了尾部的数字不被输出,并且strlen(a)从左往右读取遇见'0'停止
    且'0'不算字符
    删除前:
    '1'        '2'        'a'        '5'        'b'        'c'        '3'        '4'        '0'
    a[0]       a[1]       a[2]       a[3]       a[4]      a[5]        a[6]       a[7]       a[8]
    删除后:
    'a'        '5'        'b'        'c'        '0'        'c'        '3'        '4'        '0'
    a[0]       a[1]       a[2]       a[3]       a[4]      a[5]        a[6]       a[7]       a[8]
    */
        return 0;
    }
    
    展开全文
  • 展开全部用一个两重循环就可以了:#include void main(){int a[3][4] = {0}, row, col;printf("请输入数组元素的值(3行4列): \n");for (row=0; row<3; row++)for (col=0; col<4; col++)scanf("%d", &a[row...

    展开全部

    用一个两重循环就可以了:

    #include

    void main()

    {int a[3][4] = {0}, row, col;

    printf("请输入数组元素的值(3行4列): \n");

    for (row=0; row<3; row++)

    for (col=0; col<4; col++)

    scanf("%d", &a[row][col]);

    printf("您输入的数组为:\n");

    for (row=0; row<3; row++){//输出当前32313133353236313431303231363533e4b893e5b19e31333365666230行的元素

    for (col=0; col<4; col++)

    printf("%3d", a[row][col]);//换行

    printf("\n");

    }

    }

    扩展资料:

    C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

    二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

    C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

    其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

    展开全文
  • C语言如何输入输出一个字符串

    万次阅读 多人点赞 2019-03-28 22:41:50
    C语言中用一般用数组来处理字符串,这里暂时讨论数组的输入输出,二维之后再加上。 定义:char 数组名[常量] 输入输出:我们可用scanf&&printf或者字符串处理函数来输入输出,处理逐个字符%c,整个...

    C语言习题中,经常遇到字符串的输入输出,我们在这里简单总结一下字符串的输入输出方式。

    C语言中用一般用数组来处理字符串,这里暂时讨论一维数组的输入输出,二维之后再加上。
    定义:char 数组名[常量]
    输入输出:我们可用scanf&&printf或者字符串处理函数来输入输出,处理逐个字符用%c,整个字符串用%s。

    一 scanf&&printf

    I. 逐个字符的处理
    以’.'来表示字符串的结束。

    #include<stdio.h> 
    int main(){
      	char s[10],i=0;
      	scanf("%c",s);  
      	while(s[i]!='.'){
      	scanf("%c",&s[++i]);
      	}
      	i=0;
      	while(s[i]!='.'){
      	printf("%c",s[i++]);
      	}
      	printf("%c",s[i++]);
      	return 0;
    }
    ```
    

    优点:可以接受含有空格和回车的字符串。
    II. 整个字符串的输入输出

    #include<stdio.h>
    int main(){
     	char s[10];
     	scanf("%s",s);  //or scanf("%s")
     	printf("%s",s);
     	return 0;
     }
    
    

    优点:简洁方便;
    缺点:不能接受含有空格的字符串。

    二 字符串处理函数<stdio.h>

    I. 逐个字符的处理

    #include<stdio.h>
    #include<string.h>
    int main(){
     	char s[10];
     	int i=0;
     	s[i]=getchar();
     	while(s[i]!='.'){
      	s[++i]=getchar();
     	}
     	i=0;
     	while(s[i]!='.'){
      	putchar(s[i++]);
     	}
    	putchar(s[i]);
    	return 0;
    }
    

    优点:可以接受含有空格和回车的字符串。
    II. 整个字符串的输入输出

    #include<stdio.h>
    #include<string.h>
    int main(){
     	char s[10];
     	gets(s);
     	puts(s);
     	return 0;
    }
    

    优点:简洁方便,也可以接受含有其他特殊字符的输入输出,如空格,回车等。推荐使用

    展开全文
  • 程序必须随机地从一个元素“走到”另一个元素,每次都上下、向左或向右移动一个元素位置。已访问过的元素按访问顺序字母A到Z进行标记。 #include #include #include #define N 10 main() { char m[26]={'A','B'...
  • C语言深理解数组

    2020-10-30 09:38:47
    经过这几天的学习,大家应该知道怎样在一个数组中存放一个字符串了吧,就是下面这种方式 char str[20] ="shanxi"; 那定义之后如何输出呢?试想一下,既然是数组,那么就能输出其中的任何一个元素,那么就有下面两种...
  • 题目:一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? ...
  • 我想的方法是定义一个变量x=1,然后在for循环里面,每一次x++存入数组 代码: ``` #include<stdio.h> int main() { int a[2][2]; int i,j,x=1; for(i=0;i;i++) for(j=0;j;j++) { a[i][j]=x; x...
  • 【c++】c++中如何打印字符串的地址

    千次阅读 2015-10-30 16:00:43
    在C++中,如果cout一个字符数组的话,那么它会沿着这个地址,一直输出这个字符串,直到遇到'\0',例如:  char*c="cadn\0hello";  cout 输出的结果是:cadn 如果我们自作聪明的想输出一个字符的地址,例如这样...
  • 我希望能用一个数组存放每个结构体的头地址,然后在指定第n个学生成绩时,能通过数组存放的头地址来输出对应存放的一组数据。注:不希望二维数组存放所有数据,这样就不节省空间了。希望一维数组仅存放头地址,...
  • 6.13 如何声明一个数组的指针? 动态数组分配 6.14 如何在运行时设定数组的大小?怎样才能避免固定大小的数组? 6.15 我如何声明大小和传入的数组一样的局部数组? 6.16 如何动态分配多维数组? 6.17 有个很好...
  • 6.13 如何声明一个数组的指针?  动态数组分配  6.14 如何在运行时设定数组的大小?怎样才能避免固定大小的数组?  6.15 我如何声明大小和传入的数组一样的局部数组?  6.16 如何动态分配多维数组?  6.17...
  •  1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是...
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 42 声明问题 43 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 43 *1.26 main的正确定义...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main的正确...
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main的正确...
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 1.26 main的正确定义是什么?void ...
  • 头文件是#include 比如说数组a[5]={1,5,4,2,3}; 当你sort(a,a+5)时,就把数组a从小到大排序了 ...如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。 一、可以编写自己的s
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 1.26 main的正确定义是什么?void ...
  • **提问者言**:的vc++6.0和easyx,已运行过,0错误0警告,代码如下: // calculator.cpp : Defines the entry point for the console application. #include "stdafx.h" #include "graphics.h" #include ...
  • 你必须知道的495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.10 如果我不使用表达式的值, 我应该++i 或i++ 来自增一个变量 吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.11 为什么如下的代码int a = 100, b = 100; long int c = a * b;...
  • //ps指针指向字符串下一个字符 } digit[i] = '\0'; //为了能%s输出,digit在末尾要加一个结束字符'\0' printf("%s\n", digit); ```) `` ``` **如果要传递m,n,o,q多个整形数据呢? ** 以下是我...
  • 因为这字符串里面有双引号"", 直接用printf(" ");显然不行,不信你可以去试试!!然后我就想到了能不能把它放进数组里,再输出数组呢?动手试,数组初始化还是不行,里面有’’’’,好家伙,数组不行啊,怎么办...
  • o 7.10 我如何声明一个数组指针 ? o 7.11 我如何在运行期设定数组的大小 ? 我怎样才能避免固定大小的数组 ? o 7.12 我如何声明大小和传入的数组一样的局部数组 ? o 7.13 我该如何动态分配多维数组 ? o ...
  • 为2048的游戏写一个算法,输入一个元素只能为0,2或4的二维数组一个操作,字符wsad代替上下左右,时间复杂度越小起好。(不用随机产生2和4)如, 输入: 0 0 2 2 2 0 0 0 0 0 0 0 4 4 2 2 a 输出: 4 0 0 0 2 0 0 ...
  • 84 _ 如何看懂一个程序举例_1 _ while判断是否是回文数【重点】 83 _ while循环3 _ for和while的比较 82 _ while循环2 _ while执行顺序 81 _ while循环1 _ while概述 80 _ for循环9 _ 多个for循环嵌套使用举例 79 ...
  • 在函数s中也用printf 语句输出次n值,这n值是形参最后取得的n值0。从运行情况看,输入n值为100。即实参n的值为100。把此值传给函数s时,形参 n 的初值也为100,在执行函数过程中,形参n的值变为5050。 返回...

空空如也

空空如也

1 2 3
收藏数 58
精华内容 23
关键字:

如何用printf输出一个数组