对于每个比萨饼,需要记录: 比萨饼公司的名称,可以由多个单词组成。比萨饼的直径。比萨饼的重量。请用C++设计一个用new来为结构分配内存,并编写一个使用这种结构变量的程序。程序将请求用户输入上述信息,然后显示这些信息。
时间: 2023-05-29 12:01:31 浏览: 81
```c
#include <stdio.h>
#include <stdlib.h>
struct Pizza {
char name[50];
int diameter;
float weight;
};
int main() {
struct Pizza* pizzaPtr; // 定义一个指向结构体的指针
pizzaPtr = (struct Pizza*) malloc(sizeof(struct Pizza)); // 用new分配内存并将指针指向该内存地址
printf("请输入比萨饼公司的名称:");
scanf("%s", pizzaPtr->name); // 通过指针操作结构体变量
printf("请输入比萨饼的直径:");
scanf("%d", &pizzaPtr->diameter);
printf("请输入比萨饼的重量:");
scanf("%f", &pizzaPtr->weight);
printf("比萨饼公司的名称:%s\n", pizzaPtr->name);
printf("比萨饼的直径:%d英寸\n", pizzaPtr->diameter);
printf("比萨饼的重量:%.2f磅\n", pizzaPtr->weight);
free(pizzaPtr); // 释放已分配的内存
return 0;
}
```
相关问题
对于每个比萨饼,需要记录: 比萨饼公司的名称,可以由多个单词组成。比萨饼的直径。比萨饼的重量。请用C++设计一个能够存储这些信息的结构,并编写一个使用这种结构变量的程序。程序将请求用户输入上述信息,然后显示这些信息。
```c
#include <stdio.h>
#define MAX_NAME_LEN 100
struct Pizza {
char name[MAX_NAME_LEN];
float diameter;
float weight;
};
int main(void) {
struct Pizza pizza;
printf("请输入比萨饼公司的名称:\n");
fgets(pizza.name, MAX_NAME_LEN, stdin);
printf("请输入比萨饼的直径(英寸):\n");
scanf("%f", &pizza.diameter);
printf("请输入比萨饼的重量(盎司):\n");
scanf("%f", &pizza.weight);
printf("比萨饼公司:%s", pizza.name);
printf("比萨饼直径:%.2f英寸\n", pizza.diameter);
printf("比萨饼重量:%.2f盎司\n", pizza.weight);
return 0;
}
```
注意:
1. 结构体中的字符串使用字符数组存储,需要指定数组大小。
2. 使用fgets读取用户输入的字符串,可以避免超出数组范围的问题。
阅读全文