这是一个很简单的程序:
#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s,%d",a,&t);
printf("%d",&t);
}
运行后(我用的是VC++ 6.0),键入aaaaaa,4 或是 aaaaaa 空格 4 或是 aaaaaa tab 4 所得的结果都不是4
这个句子可能有歧义,但是我想知道是不是我的输入方法不对,有办法能让它的答案是4吗?
#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s%d",a,&t);
printf("%d",t);
}
这个可不可以啊,输入:aaaaa 4
输出:4
为什么
int t;
printf("%d",t);
输出的就是 37814176
#include <stdio.h>
int main(void)
{
int t=1;
char a[5];
scanf("%s %d",a,&t);
printf("%d\n",t);
}
输入aaaa enter 4
输出4
#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s,%d",&a,&t);
printf("%d",t);
}
输入aaaa 4
输出4
#include<stdio.h>
main()
{ int t = 0;
char a[5];
scanf("%s %d", &a, &t);
printf("%s\n", a);
printf("%d\n",t);
}
输出一下 a 就什么都明白拉, 自己多试试嘛
对树组不能直接用字符串附值,除非是初始化的时候
#include<stdio.h>
main()
{ int t;
char a[5];
clrscr();
scanf("%s%d",a,&t);
/*输入1个a或多于5个的字符,中间必须用空格隔开, 如 aaaaa 4 或aaaaaa 4,a 4,建议看下谭浩强的C程序设计第二版,很详细的*/
printf("t=%d",t);/*&t,"&"号是表示内存的地址,&t指向变量t的内存地址号*/
}
aaaaa 4
t=4
#include<stdio.h>
main()
{int t;
char a[5];
scanf("%s",a);
scanf("%d",&t);
printf("%d",t);
}
输入:aaaaaa 4
结果:4
#include <stdio.h>
main()
{
char* inputchar;
char mychar[5];
int myint;
scanf("%s",inputchar);
ssanf(inputchar,"%s-%d",mychar,myint);
printf("%s\n",mychar);
printf("%d\n",myint);
}
通过输入字符串的分离得到字符和数字,当中用-就可以实现了.
在输入的是字符的时候,空格,回车也算是一个字符计算
#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s,%d",a,&t);这里有问题这里是将字符放入T的地址中,而在C中变量地址并不是固定的
printf("%d",&t);这里读取的是T变量的新地址,而前面的赋值并没有真实的赋给T
}
#include<stdio.h>
void main()
{
int t;
char a[5];
scanf("%s",a);
scanf("%d",&t);
printf("%d",t);
}
这样可以输出真确的,原来就是输出的是地址
10楼说的比较好啊 你现在得看看基础的知识啊
你用,号隔开输入的时候要对应的隔开!
这是一个很简单的程序:
#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s,%d",a,&t);
printf("%d",&t);
}
你这道题首先在语句scanf("%s,%d",a,&t);的%s后加一个空格然后再按格式输入,因为scanf在输入一个字符串时是一空格作为输入的结束标志;
其次,你是要输出t的值,那么你就不该再输出语句printf("%d",&t);的t前面加&符号;
关于这程序你有这两处错;你再输入是要注意这个一维数组织有五个元数,你再输入是不能超过五个字符;
修改后的程序是:#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s ,%d",a,&t);
printf("%d",t);
}
正确的形式是:aaaaa ,4则结果是4;
飘过,看拉!@
最关键的是在字符数组上的错误,一个字符数组的每个字符只能容纳一个字母,多了会报错或者输出的结果不对。所以,你输入时要注意一次只能输入一个字符然后回车,接着在输下一个。
1) 就是scanf中不要以“,”隔开“%s”和“%d”,否则你在输完第一个占位符的值时要加上一个“,”
2) &t是t的地址,即变量t所在的内存的编号
3) 数组不要越界,a[5]当然不能存入6个a
4) 一般写成1楼的形式最好,简单也不容易处错
这个贴相当的。。强。。牛
#include<stdio.h>
main(){
scanf("%d", &t);
printf("%d\n",t);
}
我就想不通了,这个程序跟a有什么关系?
迷茫!
路过
好多方法,呵呵
强人 24楼的说得很透
#include<stdio.h>
main()
{ int t = 0;
char a[5];
scanf("%s %d", &a, &t);
printf("%s", a);
printf("%d\n",t);
因该可以的
你直接输入4试试
会出错地
#include<stdio.h>
main()
{ int t = 0;
char a[5];
scanf("%s %d", &a, &t);
scanf("%s", a);
printf("%d\n",t);
呵呵, 受教了. 看来要多加强一下基础了.
#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s,%d",a,&t);
printf("%d",&t);
}
你这道题首先在语句scanf("%s,%d",a,&t);的%s后加一个空格然后再按格式输入,因为scanf在输入一个字符串时是一空格作为输入的结束标志;
其次,你是要输出t的值,而不是t变量的地址!所以你就不该再输出语句printf("%d",&t);的t前面加&符号;
关于这程序你有这两处错;你再输入是要注意这个一维数组织有五个元数,你再输入是不能超过五个字符;
修改后的程序是:#include<stdio.h>
main()
{ int t;
char a[5];
scanf("%s ,%d",a,&t);
printf("%d",t);
}
正确的形式是:aaaaa ,4则结果是4;
数组越界了呢
同学
你的printf语法错了,printf("%d",&t)等于是输出变量t在内存中的地址值了,应该为printf("%d",t)就好了。