本文目錄一覽:
- 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);
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/194280.html