如何制作一个C程序,找到数组中的数字,然后乘以它?

时间:2014-01-15 11:11:13

标签: c arrays

我想创建一个C程序,在输入数组中找到数字,然后将它们相乘,我制作了程序,但它有一个我不知道的问题,任何人都可以帮助我!?< / p>

这是代码!

#include <stdio.h>
#include <stdlib.h>

int main ()
{
  char t[10];
  int n, z;
  n = 0;

  printf ("please enter a code: \n");
  scanf ("%s", t);
  while (n != '\0')
    {
      if (isdigit (t[n] == 0))
        {
          n++;
        }
      else
        {
          z = t[n];
          z *= z;
        }
    }
  printf ("%d", z);
}

4 个答案:

答案 0 :(得分:1)

这是更新的代码。每个需要更正的bug都有评论。 (请注意,注释描述了更正代码的意图,但没有描述错误。)

int temp;

z=1;                          // Initialize z
printf ("please enter a code: \n");
scanf ("%s", n);
while (t[n] != '\0') {        // While there are more characters in the string 
  if (isdigit (t[n])) {       // Check if the character is a digit
      temp = t[n] - '0';      // Convert character digit to corresponding number.
      z *= temp;
  }
  n++;
}

答案 1 :(得分:0)

您的首要问题是您实际上并未在t循环中使用while。您的while循环仅使用设置为n且永不修改的0

您的第二个问题是,您最好立即使用scanf("%d", &number);来扫描数字。

答案 2 :(得分:0)

z应初始化为1。并删除&#34; z = t[n];&#34;

答案 3 :(得分:0)

#include <stdio.h>
#include <string.h>

main()
{
   char a[5] ;
   int b=1, n=0,m=0;
   scanf("%s",a);

   while (n <5 )
   {
       if (!isdigit(a[n])) 
       {
           n++;
           m++;
       }
       else{
           b *= (a[n]-'0');
           n++;
       }
   }

   if(m==5) b=0;
   printf("%d\n",b);

}