C 如何查找不带循环的用户输入的第一位数字

C 如何查找不带循环的用户输入的第一位数字,c,C,我一直试图在不使用循环的情况下找到用户输入的第一位数字。我确实尝试在这里应用方法(),但在进入第二个函数之前,我似乎遇到了内核转储错误。下面是我的代码。任何帮助都将不胜感激 #include <stdio.h> #include <math.h> void takeInput (int *input); void firstDigit (int *input, int *digit1); int main (void) { //local declarations i

我一直试图在不使用循环的情况下找到用户输入的第一位数字。我确实尝试在这里应用方法(),但在进入第二个函数之前,我似乎遇到了内核转储错误。下面是我的代码。任何帮助都将不胜感激

#include <stdio.h>
#include <math.h>

void takeInput (int *input);
void firstDigit (int *input, int *digit1);

int main (void)
{
//local declarations
int input; //user input, number from -99999 to 99999
int digit1;
int digit2;
int digit3;
int digit4;
int digit5;
takeInput (&input);
firstDigit (&input, &digit1);
return 0;
}

void takeInput (int *input)
{
printf("type input in -> ");
scanf("%d", input);
return;
}

void firstDigit (int *input, int *digit1)
{
int temp;
printf("firstDigit ");
temp = *input % 10000;
digit1 = *input - temp;
*input = *input % 10000;
//  printf("%d", *input);
//  temp = (int) log10(*input);
//  digit1 = (int) (*input / pow(10, temp));
printf("%d", *digit1);
return;
}
#包括
#包括
无效输入(int*输入);
无效第一位数字(int*输入,int*数字1);
内部主(空)
{
//本地声明
int-input;//用户输入,数字从-99999到99999
int-digit1;
int-digit2;
int-digit3;
int-digit4;
int-digit5;
takeInput(&input);
第一位数字(&输入,&数字1);
返回0;
}
void takeInput(int*input)
{
printf(“输入->”;
扫描频率(“%d”,输入);
返回;
}
无效第一位数字(整数*输入,整数*数字1)
{
内部温度;
printf(“第一位”);
温度=*输入%10000;
数字1=*输入-温度;
*输入=*输入%10000;
//printf(“%d”,*输入);
//温度=(int)log10(*输入);
//数字1=(int)(*输入/功率(10,温度));
printf(“%d”,*digit1);
返回;
}

您可以将其转换为字符串,然后查找第一个和最后一个数字

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

int main()
{
    char string[20];
    int input;
    scanf("%d", &input);
    itoa(input, string, 10);
    printf("first digit: %d\n", string[0] - '0');
    printf("last digit: %d\n", string[strlen(string) - 1] - '0');


    return 0;
}
#包括
#包括
#包括
int main()
{
字符串[20];
int输入;
scanf(“%d”,输入(&I));
itoa(输入,字符串,10);
printf(“第一位数字:%d\n”,字符串[0]-“0”);
printf(“最后一位数字:%d\n”,字符串[strlen(string)-1]-“0”);
返回0;
}
“看起来像”。没有必要猜测。在调试器中运行您的程序,它将准确地告诉您哪行代码触发了代码转储。调试器还可用于检查变量值和跟踪程序执行。