scanf输入两个变量时,后面一个变量赋值出现问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf输入两个变量时,后面一个变量赋值出现问题。相关的知识,希望对你有一定的参考价值。

第一个程序两个变量连续输入,precision变量不能控制精度。第二个程序把两个变量分开输入,precision变量能控制精度。刚开始学,问题描述有些乱,麻烦看下图。... 第一个程序两个变量连续输入,precision变量不能控制精度。第二个程序把两个变量分开输入,precision变量能控制精度。刚开始学,问题描述有些乱,麻烦看下图。 展开  

参考技术A 输入格式与输入的数据要配对。输出格式要与输出的变量配对。格式
字符串是
常量字符串。
printf("The
width
is
%d
and
the
number
is
%d\n",width,number);
//输出2个数据
scanf("%d,
%d",
&width,
&precision);
//这句格式要求是拍入2个整型数,数与数之间要
逗号分隔。要拍入
8,3
(逗号不能漏)。
如果改用
格式:
scanf("%d
%d",
&width,
&precision);
输入的数据用空白分隔。
printf("width=%d
precision=%d
weight=%f\n",width,precision,weight);
//输出格式
与输出的变量配对,
double


%lf

%f
格式。
===========
如果预先知道输出格式要求

占位8,小数点下3位,你应当写:
printf("weight=%8.3f\n",
weight);
如果预先不知道输出格式要求,运行时给入,则

下面方法:
int
main()

unsigned
w,p;
int
number=256;
double
weight=242.5;
char
ff[80]="weight
is
%8.3f\n";
printf(ff,
weight);
//
预先知道
%8.3f
printf("input
width
and
precision:
10
4\n");
//预先不知道,临时要求
%10.4f
scanf("%d
%d",&w,&p);
//
拍入
10
4
sprintf(ff,"weight=%%%d.%df\n",w,p);
//
构成格式
printf(ff,
weight);
//
输出
return
0;

运行例子:
weight
is
242.500
input
width
and
precision:
10
4
10
4
weight=
242.5000

在结构体变量很多的时候,怎样用scanf给结构体变量赋值?

你的k和e定义的不对,应该是char k[]= "snooker"; char e[] = "us8";
赋值可以用strcpy这个函数。
比如有:struct table t;
strcpy(t.type, k); 就是把k复制到t的type中。注意用的时候保证type足够长。

接下来按照你的逻辑写就好。
参考技术A struct S

int a;
char c;
;

...
struct S data;
scanf("%d",&data.a);//给结构体中整型变量a赋值
scanf("%c",&data.c);//给结构体中字符型变量赋值
...
参考技术B struct number

int a,b,c;
char s,*y;
double p,q;

data;
cout<<data.a<<endl<<data.s<<endl;
getchar();
参考技术C 逐一赋值

以上是关于scanf输入两个变量时,后面一个变量赋值出现问题。的主要内容,如果未能解决你的问题,请参考以下文章

如何同时调用俩次scanf 给一个变量赋值?

在结构体变量很多的时候,怎样用scanf给结构体变量赋值?

c语言编程。输入两个正整数,分别赋给变量a,b,计算ab之间所有整数之和。

c语言简单求和,编写程序:输入两个数,求两个数的和

r语言赋值变量怎么输入?

怎样一次性改变matlab中的某个变量