Ⅰ (c語言)輸入一組字元(以#號結尾),對該組字元進行統計,統計字母、數字和其它字元的個數,輸出統計結果。
你好,這是修改後的代碼:
#include<stdio.h>
#include<stdlib.h>
void main()
{
char c;
printf("請輸入一串字元(以#結束):");
c=getchar();
int i=0,j=0,k=0;//這三個值你忘記初始化了,必須初始化啊
while(c!='#')
{
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))i++;
else
if(c>='0'&&c<='9')j++;
else k++;
c=getchar();//這個你忘記寫了,否則不會輸入完整
}
printf("字母個數:%d\n",i);
printf("數字個數:%d\n",j);
printf("其它字元個數:%d\n",k);
system("pause");
}
不懂追問我,滿意請採納,謝謝,祝愉快
Ⅱ C語言中如何以一個指定字元結束輸入並輸出結果,而不用按回車.
思路:可以利用while循環依次輸入,並判斷輸入的字元是否是結束字元,如果時就結束輸入並輸出輸入的字元。
參考代碼:
#include<stdio.h>
intmain()
{
intn=0,i;
chara[100];
while(scanf("%c",&a[n++])){
if(a[n-1]=='#')//輸入#就結束輸入
break;
}
for(i=0;i<n-1;i++)
printf("%c",a[i]);
printf(" ");
return0;
}
/*
輸出:
qewq#af
qewq
*/
Ⅲ c語言輸出的最後總是以「0」結尾是為什麼
你的程序寫的有問題,我重新改下,測試通過。你的程序主是由於對scanf函數對字元串的輸入接收理解不正確。你的:for(i=0;i<2;i++)
scanf("%s,%s,%c,%d",sa[i].name,sa[i].num,&sa[i].sex,&sa[i].age);
我更改後的:for(i=0;i<2;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();}[新的程序]#include<stdio.h>
#include<stdlib.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;<br>int i, j;<br>if((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;i<2;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;i<2;i++)
printf("%s,%s,%c,%d\n",sb[i].name,sb[i].num,sb[i].sex,sb[i].age);
fclose(fp);
}
Ⅳ C語言 程序結尾輸出文字問題
你是用什麼IDE的?有些IDE會在程序執行的結果後面顯示關於程序的一些信息,如執行時間等等。另外,如果還有不理解的,可以上
http://www.vcworld.net/bbs/?fromuid=976
。
Ⅳ C語言的字元串為什麼以0作為它的結尾
在C語言中沒有專門的字元串變數,通常用一個字元數組來存放一個字元串。字元串總是以'