初学VC++的一个问题

时间:2021-08-14 19:56:48
#include <stdio.h>
void main()
{
char shuru;
int shuzi=0,zifu=0,qita=0,kongge=0;
printf("请随便输入一些信息:");
for (int i=0;i=i;i++)
{

  scanf("%1c",&shuru);
  
  if (shuru=='\n')
   break;
  else if ((shuru>='0' && shuru<='9'))
   shuzi++;
  else if ((shuru>='A' && shuru<='Z') || (shuru>='a' && shuru<='z')) 
   zifu++;
  else if (shuru==' ')
   kongge++;
  else
   qita++;

}

printf("你输入了%d个数字!\n",shuzi);
printf("你输入了%d个字符!\n",zifu);
printf("你输入了%d个空格!\n",kongge);
printf("你输入了%d个其它字符!\n",qita);
}

这个代码   是想统计用户输入的信息里有几个数字 几个字符什么的 可是一运行  根本就没有让用户输入 就直接结束了 显示输入了0个字符什么的 请问哪里出问题了啊?

10 个解决方案

#1


你再试试!~~~~~~~
#include <stdio.h>
void main()
{
char shuru;
int shuzi=0,zifu=0,qita=0,kongge=0;
printf("请随便输入一些信息:\n");
for (int i=0;i<1000;i++)   //i=i???
{

  scanf("%c",&shuru);
  
  if (shuru=='\n')
break;
  else if ((shuru>='0' && shuru<='9'))
shuzi++;
  else if ((shuru>='A' && shuru<='Z') || (shuru>='a' && shuru<='z')) 
zifu++;
  else if (shuru==' ')
kongge++;
  else
qita++;

}

printf("你输入了%d个数字!\n",shuzi);
printf("你输入了%d个字符!\n",zifu);
printf("你输入了%d个空格!\n",kongge);
printf("你输入了%d个其它字符!\n",qita);
}

#2


for (int i=0;i=i;i++)
=======================
for (int i=0;i==i;i++)

#3


什么意思

#4


晕 这样可以 不过我以前就是用i=i这样做死循环的啊

#5


for (int i=0;i=i;i++)
改成
for (int i=0;;i++)

#6


for (int i=0;i=i;i++)
改成
for (int i=0;;i++)

同意这种

#7


同意!!

#8


for (int i=0;i=i;i++)//错误!!--会成为死循环!

改为:for (int i=0;i<1000;i++)   

#9


。。  写错了  少写一个=汗  谢谢大家

#10


少写一个=汗 

所以编程时一般写成这样比较好
比如判断i是否等于1

写成 if (1 == i)

而不是if (i == 1)因为 if (i=1)无语法错误,但可能与你想要表达意思不一样
而if(1=i)是会抱错的

#1


你再试试!~~~~~~~
#include <stdio.h>
void main()
{
char shuru;
int shuzi=0,zifu=0,qita=0,kongge=0;
printf("请随便输入一些信息:\n");
for (int i=0;i<1000;i++)   //i=i???
{

  scanf("%c",&shuru);
  
  if (shuru=='\n')
break;
  else if ((shuru>='0' && shuru<='9'))
shuzi++;
  else if ((shuru>='A' && shuru<='Z') || (shuru>='a' && shuru<='z')) 
zifu++;
  else if (shuru==' ')
kongge++;
  else
qita++;

}

printf("你输入了%d个数字!\n",shuzi);
printf("你输入了%d个字符!\n",zifu);
printf("你输入了%d个空格!\n",kongge);
printf("你输入了%d个其它字符!\n",qita);
}

#2


for (int i=0;i=i;i++)
=======================
for (int i=0;i==i;i++)

#3


什么意思

#4


晕 这样可以 不过我以前就是用i=i这样做死循环的啊

#5


for (int i=0;i=i;i++)
改成
for (int i=0;;i++)

#6


for (int i=0;i=i;i++)
改成
for (int i=0;;i++)

同意这种

#7


同意!!

#8


for (int i=0;i=i;i++)//错误!!--会成为死循环!

改为:for (int i=0;i<1000;i++)   

#9


。。  写错了  少写一个=汗  谢谢大家

#10


少写一个=汗 

所以编程时一般写成这样比较好
比如判断i是否等于1

写成 if (1 == i)

而不是if (i == 1)因为 if (i=1)无语法错误,但可能与你想要表达意思不一样
而if(1=i)是会抱错的