精华内容
下载资源
问答
  • C语言-读入含空格的字符串

    千次阅读 2020-09-26 08:03:01
    输入一行字符,统计其中英文字母、空格数字和其它字符的个数。 思路 没说到底输入几个字符,无法用循环给数组赋值 解决: 定义足够大的数组,然后以%s为输入格式,一次性输入字符。然后再通过访问数组的每个元素...

    题目

    输入一行字符,统计其中英文字母、空格、数字和其它字符的个数。

    思路

    1. 没说到底输入几个字符,无法用循环给数组赋值

    解决:

    定义足够大的数组,然后以%s为输入格式,一次性输入字符。然后再通过访问数组的每个元素得到其ASCII码,通过条件控制语句输出。

    #include <stdio.h>
    int main(void) {
          char str1[5];  
          scanf(%s”,str1);//注意:不用加&  
          printf("%s\n", str1);     
          return 0; 
    }
    

    scanf()进行读取时,输入参数是已经定义好的“字符数组名”, 不用加&, 因为在C语言中数组名就代表该数组的起始地址。

    1. scanf()遇见空格就停止读取,无法统计空格的数目。

    解决:

    用gets()函数的话,遇到空格就不会返回了,遇到回车才返回。

    #include <stdio.h>
    int main(void) {
          char str1[5];  
          gets(str1);//与scanf的写法不同  
          printf("%s\n", str1);     
          return 0; 
    }
    

    代码

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char str[200];
        gets(str);//gets()和scanf()的输入格式不同。此处若用scanf()则总在空格键入时停止输入
        int n=strlen(str);
        int a[n];
        for(int i=0;i<n;i++){
            a[i]=str[i];
        }
        int w=0,x=0,y=0,z=0;
        for(int j=0;j<n;j++){
            if(a[j]>=65&&a[j]<=90){
                w++;
            }
            else if(a[j]>=97&&a[j]<=122){
                w++;
            }
            else if(a[j]==32){
                x++;
            }
            else if(a[j]>=48&&a[j]<=57){
                y++;
            }
            else{
                z++;
            }
        }
        printf("%d\n%d\n%d\n%d",w,x,y,z);
    }
    

    参考资料

    1. http://m.biancheng.net/view/232.html
    2. https://zhidao.baidu.com/question/54103433.html
    展开全文
  • 本题要求实现一种数字加密方法。...对偶数位,用B的数字减去A的数字,若结果为负数,则再10。这里令个位为第1位。 输入格式: 输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。 输出

    本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。

    输入格式:

    输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。

    输出格式:

    在一行中输出加密后的结果。

    输入样例:
    1234567 368782971
    
    输出样例:

    3695Q8118

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char A[101], B[101];
        char encrypt[] = "0123456789JQK";
    
        scanf("%s %s", A, B);
        int lenA = strlen(A);
        int lenB = strlen(B);
        int maxlen = lenA > lenB ? lenA : lenB;
        int a, b;
    
        for(int i = 0; i < maxlen; i++)
        {
            a = lenA + i - maxlen < 0 ? 0 : A[lenA + i - maxlen] - '0';
            b = lenB + i - maxlen < 0 ? 0 : B[lenB + i - maxlen] - '0';
            if((maxlen - i) % 2)    putchar(encrypt[(a + b) % 13]);
            else                    putchar('0' + (b - a < 0 ? b - a + 10 : b - a));
        }
    
        return 0;
    }


    展开全文
  • 对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再 10。这里令个位为第 1 位。 输入格式: 输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。 输出格式: 在一行中输出加密后的...

    1048 数字加密 (20 分)
    本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。
    输入格式:
    输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。
    输出格式:
    在一行中输出加密后的结果。
    输入样例:
    1234567 368782971
    输出样例:
    3695Q8118

    分析

    用两个数组来存储A和B,在用另外一个数组来存储加密后的结果,从末尾开始计算,用一个变量来计数,计是第几位,来判断是奇数位还是偶数,长的部分单独拿出来计算,输出时注意从后往前输出,数组长度等于A(或者B),最长的哪一个

    代码

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char a[105],b[105],c[105];//数组a存储A,数组b存储B,数组c存储答案
        char str[13]={'0','1','2','3','4','5','6','7','8','9','J','Q','K'};
        scanf("%s%s",a,b);
        int la=strlen(a),lb=strlen(b);//求字符串的长度
        int i,j,sum=0,m=0,t;
        for(i=la-1,j=lb-1;i>=0&&j>=0;i--,j--)
        {
            sum++;//表示开始算的第几位
            if(sum%2!=0)//奇数位
            {
                t=(a[i]-'0')+(b[j]-'0');//两者求和
                t=t%13;//求模
                c[m++]=str[t];
            }
            else//偶数位
            {
                t=b[j]-a[i];//做差
                if(t<0)//做差小于0时
                    c[m++]=str[t+10];
                else//大于等于0时
                    c[m++]=str[t];
            }
        }
        while(i>=0)//A长一些
        {
            sum++;
            if(sum%2!=0)//奇数
            {
                c[m++]=a[i];
            }
            else//偶数
            {
                if(a[i]=='0')//偶数时作差为0
                    c[m++]=a[i];
                else//偶数做差为负数
                    c[m++]=10-(a[i]-'0')+'0';
            }
            i--;
        }
        while(j>=0)//B长一些
        {
            sum++;
            c[m++]=b[j];
            j--;
        }
        i=la>lb?la:lb;
        for(i=i-1;i>=0;i--)
        {
            printf("%c",c[i]);
        }
        printf("\n");
    }
    

    错误原因

    负数才加10,在A长的那部分处理中忘却

    展开全文
  • 对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再 10。这里令个位为第 1 位。 输入格式: 输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。 输出格式: 在一行中输出加密后的...

    1048 数字加密 (20分)

    本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。

    输入格式:
    输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。

    输出格式:
    在一行中输出加密后的结果。

    输入样例:

    1234567 368782971
    

    输出样例:

    3695Q8118
    
    #include"stdio.h"
    #include"string.h"
    #include"stdlib.h"
    int main(){
    	int m,n,x;
    	int i;
    	char a[100],b[100];
    	scanf("%s",a);
    	scanf("%s",b);
    	m=strlen(a);
    	n=strlen(b);
    	if(m>n){
    		x=m-n;
    		for(i=n;i>=0;i--)
    			b[i+x]=b[i];
    		for(i=0;i<x;i++)
    			b[i]='0';
    	}
    	else if(n>m){
    		x=n-m;
    		for(i=m;i>=0;i--)
    			a[i+x]=a[i];
    		for(i=0;i<x;i++)
    			a[i]='0';
    	}
    	n=strlen(b);
    	if(n%2==0){
    		for(i=0;i<n;i++){
    			if(i%2==0){
    				x=b[i]-a[i];
    				if(x<0)
    					x=x+10;
    				printf("%d",x);
    			}
    			else{
    				x=(a[i]+b[i]-96)%13;
    				if(x<10)
    					printf("%d",x);
    				else if(x==10)
    					printf("J");
    				else if(x==11)
    					printf("Q");
    				else if(x==12)
    					printf("K");
    			}
    		}
    	}
    	else{
    		for(i=0;i<n;i++){
    			if(i%2!=0){
    				x=b[i]-a[i];
    				if(x<0)
    					x=x+10;
    				printf("%d",x);
    			}
    			else{
    				x=(a[i]+b[i]-96)%13;
    				if(x<10)
    					printf("%d",x);
    				else if(x==10)
    					printf("J");
    				else if(x==11)
    					printf("Q");
    				else if(x==12)
    					printf("K");
    			}
    		}
    	}
    
    	return 0;
    }
    
    展开全文
  • 对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再 10。这里令个位为第 1 位。 输入格式: 输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。 输出格式: 在一行中输出加密后的...
  • 题目 本题要求实现一种数字...对偶数位,用B的数字减去A的数字,若结果为负数,则再10。这里令个位为第1位。 输入格式: 输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。 输出格式:...
  • (1)%5d就是将数字的宽度变为2,采用右对齐的方式输出,若数据不到5位,就用空格补完,比如输出32, 32[前面有3个空格]。 (2)%05d就是像上面一样,但是不同在它会用’0‘来补充而不是空格。 (3)%-5d就是左对齐,...
  • 1.%输出格式: %d:整型 ...%+/-md:m表示数据输出时的列宽,当m大于数据的实际列宽则空格,如果m小于数据的实际列宽则以数据的实际列宽输出空格规则:+号表示左边补空格,-号表示右边补空格
  • c语言总结

    2018-11-11 16:34:45
    缩进,有利于程序的检查 c语言处理的数据形式:常量(在程序中不能改变其值的量)、变量(其值在程序的执行过程中是可以改变的) ...(空格、字符双引号) cout&amp;lt;&amp;lt; ...
  • 若已有明显的间隔符,也可不再加空格来间隔。 书写程序时应遵循的规则  从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时 应遵循以下规则: 1.一个说明或一个语句占一行。 2.用{} 括起来的部分,通常...
  • c语言语句集合

    千次阅读 2018-07-24 09:05:42
    Scanf取址符&amp;       C语言编程 一If语句 eg 实现比较三个数大小,从小到大输出     ...统计字母的个数,空格的个数,数字的个数       do while 格式: do ...
  •   原文:C语言基础之60个练手小项目,来试一下? C语言实现的猜拳游戏(剪子锤子布),让你与电脑对决 ...C语言输出菱形 C语言统计英文字母、空格数字和其它字符的数目 C语言将一个正整数分解质因数 用.
  • 一、scanf() 的高级用法 (1)指定读取长度 ...其实,scanf() 也有类似的用法,也可以在格式控制符的中间一个数字,用来表示读取数据的最大长度,例如: %2d 表示最多读取两位整数; %10s 表示读取的字符串
  • C语言编程要点

    2017-09-18 00:10:37
    17.1. 为什么直到程序结束时才看到屏幕输出? 220 17.2. 怎样在屏幕上定位光标? 220 17.3. 向屏幕上写数据的最简单的方法是什么? 221 17.4. 向屏幕上写文本的最快的方法是什么? 221 17.5. 怎样防止用户用Ctrl+Break键...
  • C语言习题sort.c

    2020-04-14 11:21:07
    将重复出现的项删除(姓名和电话号码都相同的项为重复项,只保留第一次出现的项),并对姓名相同手机号码不同的项进行如下整理:首次出现的项不作处理,第一次重复的姓名后面英文下划线字符_和数字1,第二次重复的...
  • PTA乙级 1048 C语言实现

    2020-12-26 12:50:21
    对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再 10。这里令个位为第 1 位。 输入格式: 输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。 输出格式: 在一行中输出加密后的...
  • 将范围内数字的平方具有对称性的数输出 ...输入说明:将要求的范围输入,输入最小数加空格再加最大数就行 1 20 C语言代码 #include<stdlib.h> #include<stdio.h> int main() { int min,max,m,count,f...
  • C语言构建连连看游戏 设计要求 用数字+英文字母,采用文本输出的方式。每次输出一个8*10的矩形,然后等待玩家输入两个数字或字母的坐标,如果满足消除规则就输出新的矩形。 注意:考虑类似迷宫的处理方式,在8 * 10...
  • 学习c语言第三天

    2021-01-05 22:24:49
    有事耽误了写记录 注意事项 1.养成习惯写声明 2.定义浮点型变量后面最后个f 3.%.数字f 浮点型精度打印 ...5.\n换行 \t可用做对其,一个不行两个,空格大小和前面字符长度有关 6.课后练习变量定义与输出 ...
  • 本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。 5.长度 长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量...
  • 学习c语言第五天

    2021-01-07 18:10:00
    2.注意占位符前加数字的含义 如%9.2f 9的含义为输出的浮点型总共占9个位置,不够的用空格来填充 %09f 填充用0来代替 .2的含义为,小数点后保留两位 (默认都是右对齐,%-9.2f可以实现左对齐) ...
  • 数字之间用一个空格字符隔开。   <p>5.编写程序,读入一个正整数,然后以升序显示它的所有最小因子(重复的数字只显示一次)。例如,若输入的整数是120,那么输出就应该是&#...
  • 若已有明显的间隔符,也可不再加空格来间隔。 1.10 书写程序时应遵循的规则 从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则: 1.一个说明或一个语句占一行。 2.用{} 括起来的部分,...
  • 对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再 10。这里令个位为第 1 位。 输入格式: 输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。 输出格式: 在一行中输出加密后的...
  • 设输入的英文短文不超过一行(假设正文最后有“.”结束,以“,”或空格分隔,不出现其他符号),编程将所有单词输出,并求其中最长单词的长度,并将该单词输出。 (4)编写一个程序实现如下功能:有8位裁判为1个...
  • 随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(≤10000)...
  • C语言经典例题100道

    2011-01-10 13:14:03
    17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值 19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题 22.乒乓球比赛抽签问题 23.打印菱形图案 24.分数数列求和 25.求1+2!+3!+...+20!的和 26.利用...
  • 4) 在一个化学方程式中,空格的出现一般是不受限制的,但是不能将同一个化学品内的元素以及所有与它们相关的系数分开,产生符号也不能分开。 5) 对于其他的一些特殊情况,如可逆化学方程式(事实上大部分的化学...
  • 题目描述 求一个N行N列的矩阵的转置...每个数字一个空格, 请在每组输出之后一个换行。 提示(每行最后一个数字后面也有一个空格) 样例输入 2 3 1 2 3 4 5 6 7 8 9 3 9 8 7 6 5 4 3 2 1 样例输出 1 4 7 2 5 8 3

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

c语言输出数字加空格

c语言 订阅