本文目录一览:
- 1、0是C语言字符串结束标志?
- 2、c语言输出的最后总是以“0”结尾是为什么?
- 3、C语言输入0结束
- 4、C语言如何实现输入数据有多组,输入以0 0结束。
- 5、C语言 关于当输入0时结束程序的问题知道
- 6、c语言:输入若干正整数,以0结束
0是C语言字符串结束标志?
这么说吧,'\0'是字符串数组的结束标志,而0则是'\0'的ASCII码表示,是第一个ASCII码,数字0的ASCII码是48,所以写程序你要用'\0'结尾,比如char
a[3]
=
{'h','i','\0'},或者直接char
a[]
="hi",编译器都会认为是字符串数组,且以'\0'结束。你调试程序时,可以看到内存里面是0,这是ASCII码的表示,也可以看作是一个unsigned
int类型。
c语言输出的最后总是以“0”结尾是为什么?
你的程序写的有问题,我重新改下,测试通过。你的程序主是由于对scanf函数对字符串的输入接收理解不正确。你的:for(i=0;i2;i++)
scanf("%s,%s,%c,%d",sa[i].name,sa[i].num,sa[i].sex,sa[i].age);
我更改后的:for(i=0;i2;i++) {
printf("第%d位,name:", i+1);
gets(sa[i].name);
printf("第%d位,num:", i+1);
gets(sa[i].num);
printf("第%d位,sex[w,m]:", i+1);
scanf("%c",sa[i].sex);
printf("第%d位,age:", i+1);
scanf("%d",sa[i].age);
getchar();}[新的程序]#includestdio.h
#includestdlib.h
struct student
{char name[20];br char num[15];br char sex;br int age;br}sa[2],sb[2];
void main()
{FILE *fp;brint i, j;brif((fp=fopen("stu_list","w+b"))==NULL)br{printf("Can't open the file!");br exit(0);br}
printf("input:name num sex age\n");
for(i=0;i2;i++) {//main change
printf("第%d位,name:", i+1);
gets(sa[i].name);
printf("第%d位,num:", i+1);
gets(sa[i].num);
printf("第%d位,sex[w,m]:", i+1);
scanf("%c",sa[i].sex);
printf("第%d位,age:", i+1);
scanf("%d",sa[i].age);
getchar();}
fwrite(sa,sizeof(struct student),2,fp);
rewind(fp);
fread(sb,sizeof(struct student),2,fp);
for(i=0;i2;i++)
printf("%s,%s,%c,%d\n",sb[i].name,sb[i].num,sb[i].sex,sb[i].age);
fclose(fp);
}
C语言输入0结束
#includestdio.h
void main()
{
int i, n, m, j = 0, h = 0;
printf("输入个数n\n");
while (scanf("%d", n)){
if (n == 0)break;
printf("输入数字,中间以空格隔开\n");
{
for (i = 0; i n; i++)
{
scanf("%d", m);
if (m % 2 != 0)
{
j++;
}
else
{
h++;
}
}
}
printf("奇数:%d\n", j);
printf("偶数:%d\n", h);
}
}
C语言如何实现输入数据有多组,输入以0 0结束。
可以循环输入数据,当遇到输入的值均为0时结束输入。
以输入整型为例,代码如下:
int a,b; //用来存输入的数据。
while(1)
{
scanf("%d%d",a,b);//以0 0结束输入,所以输入时是以空白字符分隔的。
if(a == 0 b == 0) break; //当输入的全为0,结束输入。
//在这里添加使用输入数据的代码。
}
C语言 关于当输入0时结束程序的问题知道
1、(scanf("%d",a)!=0)
的意思是:scanf("%d",a)这个操作没有不成功,成功录入则为1,失败则为0;与输入是否为0是不同概念,请注意区分。
2、如果要输入为0结束可改为:
int
a,
.......;
scanf("%d",a);
while(a!=0){
.................
scanf("%d",a).;
}
c语言:输入若干正整数,以0结束
/*c语言:输入若干正整数,以0结束.......by Mr.Kong*/
#includestdio.h
#define M 100
int arrin(int *a) /*将输入的整数赋值到数组中,并计算整数的个数*/
{
int i=0;
printf("输入整数:");
scanf("%d",a[i]);
while(a[i]!=0) /*以0结束输入*/
{
i++;
scanf("%d",a[i]);
}
return i;
}
arrout(int *a,int n) /*输出输入的整数*/
{
int i;
printf("输出整数:");
for(i=0;in;i++)
printf("%d ",a[i]);
}
main()
{
int n,a[M];
n=arrin(a);
arrout(a,n);
}
/*其他方法,仅有输入,判断不为0,无输出*/
#includestdio.h
main()
{
int a=1;
while(a!=0)
{
printf("请输入一个正整数:");
scanf("%d",a);
}
}