printf-c语言一个关于scanf的问题

问题描述

c语言一个关于scanf的问题

代码一
scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/
scanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/
/*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/
scanf("%c",&a);

请问代码一中的s为什么会被a接收?输入的是字母而不是数字的话,应该等待用户

代码二
#include
int main()
{int x,y;
scanf("%d",&x);
scanf("%d",&y);
printf("%d%d",x,y);
return 0;
}

代码二中 如果输入:s 1
为什么两个出来都是乱码?1难道没有被x或者接受吗?

解决方案

被a接收?哪里来的a,如果输入s,那么y在此之前是多少就是多少。

为什么两个出来都是乱码
因为x y都没有被接收。而x y又没有初始化。所以是随机的。

解决方案二:

C语言scanf()函数返回值的问题
C语言中scanf的问题
C语言中关于scanf()函数返回值问题

解决方案三:

%d 是要求读入一个整数,如果输入字符就会出错。

解决方案四:

%d 是要求读入一个整数,如果输入字符就会出错。

解决方案五:

c是指的字符型 d指的整型 如果你要把你一个整型变量强制输出成字符型 那么就会得到符号 如果把字符型的强制输出成整型得到的是他对应的ascii码的序号

解决方案六:

C语言%d是整数的输出形式

时间: 2024-09-14 01:00:41

printf-c语言一个关于scanf的问题的相关文章

c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求

问题描述 c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求 #include #include int main() { char*s; scanf("%s",s); //printf("%sn",s); //int n = strlen(s); //printf("%dn",n); char ret[56]; return 0; } 解决方案 s只是指针变量,没有分配内存 char*s; s = mall

设计-c语言 一个输出出现次数最多的字母的程序

问题描述 c语言 一个输出出现次数最多的字母的程序 字母不区分大小写 输出格式:出现的次数 该字母 如果有复数个出现次数最多的字母,就按字母排列顺序输出 例 输入 One Two Buckle My Shoe 输出 3 eo 输入 Once upon a time,there lived a manwhose name wos Lip van Winkle. 输出 8 e 使用以下代码雏形 #include<stdio.h> int main(void) { int i,max=0; char

c语言-【C语言】用scanf赋值给带指针的字符串

问题描述 [C语言]用scanf赋值给带指针的字符串 我希望是输入几个单词之后,这几个单词成为一个字符串,但是变异之后仍然有问题. #include<stdio.h> #include<stdlib.h> #include<string.h> int main(int argc, char *argv[]) { int n; printf("Number of words: "); scanf("%d", &n); con

c语言 一个输出出现次数最多的字母的程序

问题描述 c语言 一个输出出现次数最多的字母的程序 字母不区分大小写 输出格式:出现的次数 该字母 如果有复数个出现次数最多的字母,就按字母排列顺序输出 例 输入 One Two Buckle My Shoe 输出 3 eo 输入 Once upon a time,there lived a manwhose name wos Lip van Winkle. 输出 8 e #include<stdio.h> #include<string.h> typedef struct alp

c语言-C语言一个小小的问题,望解答

问题描述 C语言一个小小的问题,望解答 请问下面代码中为什么多一个输出语句程序是对的,去掉就不可以运行了呢?一定和输入缓存区有关系么?加一个fflush也可以,就是不知道为什么??? #include <stdio.h>#include <string.h>#include<stdlib.h>long int sumtsumtnum;struct word{ char str[105]; int num;} A[2][10005];void chuli(char s[]

c语言-C语言一个字符串的问题

问题描述 C语言一个字符串的问题 #include #include int main(){ char s1[81] s2[81]; scanf(""%s"" s1); scanf(""%s"" s2); char *find = NULL; int len2 = (int)strlen(s2); while ((find = strstr(s1 s2)) != NULL) { while ( *(find + len2) )

define-c语言一个小题目,菜鸟求解。

问题描述 c语言一个小题目,菜鸟求解. #include #define Hello(x) x/(x-1) void main() { int a=1,b=2; printf("%d n",Hello(a-b)); } 程序的输出是2,但是-1/(-2)的结果不是应该为0么?所以我不知道为什么结果为2,求解答. 解决方案 printf("%d n",Hello(a-b));// a-b/(a-b-1) = 1-2/(1-2-1) = 1 + 1 = 2 解决方案二:

.net-C#调用C语言程序遇到scanf

问题描述 C#调用C语言程序遇到scanf 怎么才能让程序自动输入一个值,并且得到返回的结果呢? Process.start之后然后该做什么啊? 解决方案 Process有一个等待结束的方法可以调用. 请查看MSDN的说明. http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process_methods(v=vs.110).aspx 自己找根鱼竿,不要等着喂鱼.

VB语言一个关于字符串组合的程序

问题描述 VB语言一个关于字符串组合的程序 这样的数字构成的字符串在VB中怎么穷举? 12*5* 输出12051 12052 ... 12959 解决方案 for i = 0 to 9 for j = 0 to 9 print "12" & i & "5" & j next next