c语言实数取整+指针
时间: 2023-12-16 10:02:22 浏览: 88
以下是一个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;
}
```
阅读全文