c语言实数取整+指针
时间: 2023-12-16 13:02:22 浏览: 41
以下是一个C语言的实数取整的例子,使用了指针来实现:
```c
#include <stdio.h>
#include <string.h>
#define N 110
int main() {
char str[N], *p=str, *q;
scanf("%s",str);
while(*p == '0') p++; //循环结束后p指向第一个非0字符
if(*p=='\0'|| *p=='.') p--; //如果整数部分全部为0,则保留一个0
q=strchr(p,'.'); //找到小数点
if(q!=NULL) //若存在小数点
*q='\0'; //将小数点置为'\0'
puts(p);
return 0;
}
```
该程序可以读入一个字符串表示的实数,然后输出其整数部分,不含前导0,但如果该整数为0,则输出0。程序使用了指针来实现字符串的操作,包括查找小数点和删除小数部分。
相关问题
C语言实数取整指针专题
C语言实数取整指针专题主要涉及到对实数进行取整操作的相关知识。下面是两个相关的例子:
1. 实数取整并去除多余的前导0
```c
#include<stdio.h>
#include<string.h>
char *rounding(char *p) {
char i, j, m=0;
for(i=0;i<strlen(p);i++) {
if(*(p+i)=='.') {
*(p+i)='\0';
j=i;
} else {
j=i;
}
}
for(i=0;i<j;i++) {
if(*(p+i) == '0') {
m++;
} else {
break;
}
}
return p+m;
}
int main() {
char a[101];
gets(a);
printf("%s\n",rounding(a));
return 0;
}
```
2. 实数取整并保留0
```c
#include<stdio.h>
#include<string.h>
char *rounding(char *p) {
char i, j;
for(i=0;i<strlen(p);i++) {
if(*(p+i)=='.') {
*(p+i)='\0';
j=i;
break;
}
}
return p;
}
int main() {
char a[101];
gets(a);
printf("%s\n",rounding(a));
return 0;
}
```
c语言取整和取余指针
C语言中,取整和取余可以使用数学库函数,也可以使用指针进行计算。
取整:
1. 使用数学库函数floor()和ceil()可以分别向下取整和向上取整,需要包含头文件<math.h>。
2. 使用指针可以通过强制类型转换实现取整,例如将一个浮点数转换为整型,可以使用(int)指针。
取余:
1. 使用数学库函数fmod()可以实现浮点数的取余,需要包含头文件<math.h>。
2. 使用指针可以通过取模运算符%实现整数的取余,例如a%b表示a除以b的余数。
下面是一个使用指针实现取整和取余的例子:
```c
#include <stdio.h>
int main() {
double num = 3.14;
int int_num = (int)num; // 取整
int remainder = (int)num % 2; // 取余
printf("整数部分:%d\n余数:%d\n", int_num, remainder);
return 0;
}
```