❶ c语言用scanf给数组赋值问题
可以参考下面的代码:
#include <stdio.h>
int main()
{
int a[3][2], i, m;
for (i = 0; i < 3; i++)
{
for (m=0;m<2;m++)
scanf("%d", &a[i][m]);
for (i = 0; i < 3; i++)
{
for (m=0;m<2;m++)
printf("%d ", a[i][m]);
}
return 0;
}
(1)c语言scanf给字符赋值扩展阅读:
函数原型
intscanf(constchar*restrictformat,...);
函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
❷ c语言给单个字符赋值
从键盘输入给字符赋值
char
ch;
scanf("%c",&ch);
上述语句就是从键盘输入给字符变量ch赋值
❸ C语言中,不能用scanf()函数输入字符串后赋给字符型指针变量具体请看下面代码中的注释。谢谢!
指针必须指向某一定义好的元素,你定义指针后,是不直接分给指针内存的,你的输入语句,系统根本不知道该把值放到哪里,让指针指向某一变量,这样就不会报错了
❹ C语言中 为什么用scanf在给 数组和字符数组赋值是 数组要加& 而字符串却不加&
可以从scanf函数的函数原型来进行解释。
函数原型:int scanf(char *format, args, ...);
功 能:从标准输入设备按format指定的输入格式将数据输入到args所指向的内存单元
返 回 值:读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0
从scanf函数的函数原型可以看出,scanf接收到的数据是赋给args指向的内存单元的,也即args是一个内存地址,而变量的内存地址用取地址符&来表示,数组的地址就是数组名。所以数组的前面不用加&
举例如下:
inta;//定义一个变量
charb[3];//定义一个字符数组
char*str=(char*)malloc(sizeof(char)*4);//定义字符串并分配内存单元
scanf("%d%d%s",&a,b,str);//变量a的地址为&a,数组b的地址为数组名b,字符串的地址为str
❺ C语言问题,scanf和直接赋值的问题
代码乱死了.大概看了一下.用char*来保存字符串必须得是在定义的时候给上值,如果不给,这就是一个字符指针.如果给了,那也只是给定了一个*只读*的字符串,所以在写代码的时候最好不要这样(除非有用)如果用了就要这样写:const char *p = "String";这样如果改动它的内容就会报错.
所以要用定义字符指针的方法去保存字符串,就得用malloc或new(C++)去动态申请内存空间.想知道更多的话,,,,把扣扣摞下吧,扣扣语音教.
❻ C语言中,可以使用scanf函数将字符赋值给整型变量吗,我试过了但是不行
#include<stdio.h>
main()
{
int a;
printf("%d\n",a);//a未初始化,会有个未知值
scanf("%d",&a); //输入'a',属于输入错误,a未被赋任何值,还是当前的未知值,输入字符,用%c,输入格式不需要'a',仅用a即可
printf("%d\n",a);
}
❼ C语言中用scanf和循环语句是怎么给字符串赋值,然后用printf输出该字符串求个例子(O_
inti;
inta[10]={0};
for(i=0;i<10,i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
这是输入数字的,要输入字母的话,可以把a[10]定义为char型
❽ c语言中为什么用scanf()给已用字符串初始化的指针变量赋值会出错
用P=“abcd”意味着把 字符串的地址赋给了 指针变量P
应该不能直接赋值吧。。只能存地址