java将"70"转化为70.00f
时间: 2023-12-08 10:03:58 浏览: 15
可以使用Float.parseFloat()方法将字符串"70"转换为float类型的数值70.0,然后使用String.format()方法将其格式化为保留两位小数的字符串形式"70.00f"。
示例代码:
```java
String str = "70";
float num = Float.parseFloat(str);
String result = String.format("%.2ff", num);
System.out.println(result); // 输出:70.00f
```
相关问题
编写程序,输入正整数n和n个学生的学号和三门课程成绩,计算每个人的平均分,按平均分从小到大排序,输出排序结果。学号的长度不超过10位;三门课程成绩为整数;平均成绩为实数,输出平均成绩保留两位小数;学生人数不超过50人。 提示:请用多个函数+指针实现。 【输入输出样例】 输入: 5 001 80 80 80 002 60 70 80 003 80 90 93 004 50 60 70 005 60 70 83 输出: 004 50 60 70 60.00 002 60 70 80 70.00 005 60 70 83 71.00 001 80 80 80 80.00 003 80 90 93 87.67 题目考察点:指针与二维数组 用C语言书写
以下是使用多个函数和指针实现题目要求的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char id[11];
int score[3];
double avg_score;
} student;
// 获取学生平均分
void calc_avg_score(student *s) {
int i;
double sum = 0;
for (i = 0; i < 3; i++) {
sum += s->score[i];
}
s->avg_score = sum / 3;
}
// 按平均分从小到大排序
void sort_students(student **s, int n) {
int i, j;
student *temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if ((*s)[i].avg_score > (*s)[j].avg_score) {
temp = *(s+i);
*(s+i) = *(s+j);
*(s+j) = temp;
}
}
}
}
int main() {
int n, i, j;
scanf("%d", &n);
student *students = (student *) malloc(sizeof(student) * n);
for (i = 0; i < n; i++) {
scanf("%s", students[i].id);
for (j = 0; j < 3; j++) {
scanf("%d", &students[i].score[j]);
}
calc_avg_score(&students[i]);
}
sort_students(&students, n);
for (i = 0; i < n; i++) {
printf("%s ", students[i].id);
for (j = 0; j < 3; j++) {
printf("%d ", students[i].score[j]);
}
printf("%.2lf\n", students[i].avg_score);
}
free(students);
return 0;
}
```
在此代码中,我们使用了一个结构体student来表示每个学生,包含学号、三门课程成绩和平均成绩。在输入每个学生的信息时,我们通过指针传递student结构体的地址,修改平均成绩。在排序时,我们通过指针数组,对每个学生的结构体进行排序,从而实现按平均分从小到大排序。在输出时,我们依次输出每个学生的信息,注意平均成绩的输出需要使用%.2lf格式控制符,保留两位小数。
1、 写一个程序包括2个函数main和f: main:定义二维字符数组,输入字符串到第0行,将二维数组的首地址和指定字符作为f函数的实参,调用f函数,并输出第1行。 f:删除二维数组的第0行中的指定字符,并将结果存入二维数组的第1行。 f函数的原型: void f(char (*p)[20], char c) 测试用例:1) 输入:“ *he*l**lo*”,'*', 输出:“ hello”; 2) 输入:“ $I d$o$” , '$',输出:“ I do”; 2、写一个程序,定义以下结构类型,调用函数创建一个动态链表,并且输出该链表。 struct Student { int num; char name[20]; float score[3]; struct Student * next; }; 并且通过调用函数实现链表的创建,插入,打印等功能 测试用例:程序执行,提示请用户输入学生数据, 用户输入: 1 zhang 70 80 90回车, 程序执行,提示请用户输入结点数据, 用户输入: 2 li 70 80 90回车, 程序执行,提示请用户输入结点数据, 用户输入: 3 wang 70 80 90回车, 程序执行,提示请用户输入结点数据, 用户输入: 0 0 0 0 0回车, 程序输出: 1, zhang, 70.00, 80.00, 90.00, 2, li, 70.00, 80.00, 90.00, 3, wang, 70.00, 80.00, 90.00
第一个问题的程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义 f 函数,用于在二维字符数组的第 0 行中删除指定字符,并将结果存入二维数组的第 1 行
void f(char (*p)[20], char c) {
int i = 0, j = 0;
// 遍历第 0 行的所有字符
while ((*p)[i] != '\0') {
// 如果当前字符不是指定字符,就将其存入第 1 行
if ((*p)[i] != c) {
(*p)[j] = (*p)[i];
j++;
}
i++;
}
// 在第 1 行的末尾加入空字符
(*p)[j] = '\0';
}
int main() {
char array[2][20]; // 定义二维字符数组
// 输入字符串到第 0 行
printf("请输入字符串:");
scanf("%s", array[0]);
// 调用 f 函数,将二维数组的首地址和指定字符作为实参
printf("请输入要删除的字符:");
char c;
scanf(" %c", &c);
f(array, c);
// 输出第 1 行
printf("第 1 行:%s\n", array[1]);
return 0;
}
第二个问题的程序如下:
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体类型
struct Student {
int num;
char name[20];
float score[3];
struct Student *next;
};
// 定义函数,用于创建动态链表
struct Student *create_list() {
struct Student *p, *q, *head;
head = NULL;
printf("请输