
C语言中 scanf("%d",&a[j][k]); 要输入一串数字 该怎么输入?
C语言中scanf("%d",&a[j][k]);要输入一串数字该怎么输入?比如要输入3*3矩阵101010101是否输入完101再回车输入010?...
C语言中 scanf("%d",&a[j][k]); 要输入一串数字 该怎么输入?
比如要输入3*3矩阵 1 0 1
0 1 0
1 0 1 是否输入完1 0 1 再回车输入 0 1 0 ? 展开
比如要输入3*3矩阵 1 0 1
0 1 0
1 0 1 是否输入完1 0 1 再回车输入 0 1 0 ? 展开
展开全部
(1) 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。
例如:
#include <stdio.h>
void main()
{
char *p, str[20];
p = new char[20];
scanf("%s", p); /*从健盘输入字符串*/
scanf("%s", str);
printf("%s\n", p); /*向屏幕输出字符串*/
printf("%s\n", str);
}
(2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
如上例中若规定只能输入10字符给字符串指针p,则第一条scanf() 函数语句变为:scanf("%10s", p);
程序运行时一旦输入字符个数大于10,p就不再继续读入,而后面的一个读入函数即scanf("%s", str)就会从第11个字符开始读入。
(3) scanf()函数中没有精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。
(4) scanf中要求给出变量地址,如给出变量名则会出错
如 scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。
(5) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。
C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
(6) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
例如:
#include <stdio.h>
void main()
{
char *p, str[20];
p = new char[20];
scanf("%s", p); /*从健盘输入字符串*/
scanf("%s", str);
printf("%s\n", p); /*向屏幕输出字符串*/
printf("%s\n", str);
}
(2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
如上例中若规定只能输入10字符给字符串指针p,则第一条scanf() 函数语句变为:scanf("%10s", p);
程序运行时一旦输入字符个数大于10,p就不再继续读入,而后面的一个读入函数即scanf("%s", str)就会从第11个字符开始读入。
(3) scanf()函数中没有精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。
(4) scanf中要求给出变量地址,如给出变量名则会出错
如 scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。
(5) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。
C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
(6) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
展开全部
假如是下面的数组,应该是
int a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[j][k]);
当然,这样你看不到要求输入的提示,scanf("%d",&a[j][k]); 前边还应该加一条语句,变成这样:
int a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
printf("enter a number:");
scanf("%d",&a[j][k]);
}
不是,每次只能输入一个数,因为a[i][j]只是代表的一个数组中的一个元素,也就是一个数。
int a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[j][k]);
当然,这样你看不到要求输入的提示,scanf("%d",&a[j][k]); 前边还应该加一条语句,变成这样:
int a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
printf("enter a number:");
scanf("%d",&a[j][k]);
}
不是,每次只能输入一个数,因为a[i][j]只是代表的一个数组中的一个元素,也就是一个数。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面的循环呢
输入的话 直接就没个数后面空格再输入下一个数就可以了
输入的话 直接就没个数后面空格再输入下一个数就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-01-12
展开全部
运算表达式;k+=j,j/=4.0,++j,j+2后,表达式的值是4变量k的值是7,变量觉得值是2.
j/=4.0,得j=1.0,++j=2.0,j+2=4.0呀,为什么答案没有.0???
j/=4.0,得j=1.0,++j=2.0,j+2=4.0呀,为什么答案没有.0???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询