Work

XX网两道面试题

1. 用单层循环打印出99乘法表
#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

int main()
{
    
int i, j;
    
for (i=1,j=1;i<9;j++)
    {
        
if (j>9)
        {
            j
=1;
            i
++;
            putchar(
'\n');
        }

        
if (i<=j)
        printf(
"%d*%d=%d\t", i, j, i*j);
    }
    
return 0;
}

2. 函数atoi的递归实现
#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

//这里并没有做充足的检查 并要求为正 只是一个递归的思想罢了

int recurse_atoi(char *str, int *sum)
{
    
    
if (str == NULL)
        
return -1;
    
if (*str != '\0')
    {
        
if (*str < '0' || *str > '9')
            
return -1;
        
*sum = *sum*10;
        
*sum += *str - '0';
        recurse_atoi(str
+1, sum);
    }
    
return *sum;
}

int main()
{
    
char str[20= "239803";
    
int sum=0;
    
/*/char str[20];

    printf("please input a num:\n");
    scanf("%s", str);pasting
   //
*/ 

    printf(
"%s = %d\n", str, recurse_atoi(str, &sum));
  
    
return 0;
}

posted on 2011-09-23 10:34 lonelycastle 阅读(110) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理