这个程序哪里错了#include <stdio.h> void main(); { /*programming*/ printf("programming!\n"); }
时间: 2024-03-02 12:51:25 浏览: 185
这段程序中的问题在于函数main的声明和定义不符合C语言的语法规定。正确的main函数定义应该是带有返回值int,并且不需要在函数名后加括号。同时,程序中的分号也会造成编译错误。下面是修改后的程序:
```
#include <stdio.h>
int main() {
/* programming */
printf("programming!\n");
return 0;
}
```
修改后的程序中,main函数的返回值类型为int,表示程序执行结束后返回一个整数值。函数体内部的语句需要用花括号括起来。最后,使用return语句显式返回0,表示程序正常结束。
相关问题
#include<stdio.h> #include<stdlib.h> int main(void) { struct book { char bkname[30]; char author[15]; float price; int stock; }b[3]={{"C_programming","Tony",38.5,6},{"English","Amy",43.5,4},{"Computer_game","Wiya",47,5}}; int i;补全程序并且输出至屏幕(C语言,保存位置为E盘文件名books.txt)
你可以使用以下代码来完成程序并将输出保存到指定文件中:
```c
#include <stdio.h>
#include <stdlib.h>
int main(void) {
// 定义结构体
struct book {
char bkname[30];
char author[15];
float price;
int stock;
} b[3] = {
{"C_programming", "Tony", 38.5, 6},
{"English", "Amy", 43.5, 4},
{"Computer_game", "Wiya", 47, 5}
};
int i;
// 打开文件
FILE* fp = fopen("E:\\books.txt", "w");
// 判断文件是否打开成功
if (fp == NULL) {
printf("Failed to open the file.");
return 1;
}
// 输出到屏幕和文件
printf("Book\t\tAuthor\t\tPrice\tStock\n");
fprintf(fp, "Book\t\tAuthor\t\tPrice\tStock\n");
for (i = 0; i < 3; i++) {
printf("%s\t%s\t%.2f\t%d\n", b[i].bkname, b[i].author, b[i].price, b[i].stock);
fprintf(fp, "%s\t%s\t%.2f\t%d\n", b[i].bkname, b[i].author, b[i].price, b[i].stock);
}
// 关闭文件
fclose(fp);
return 0;
}
```
这段代码会将输出同时输出到屏幕和文件中,文件名为E盘下的books.txt。如果文件打开失败则会输出错误信息并退出程序。
#include <stdio.h> #include <string.h> struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; /* 函数声明 */ void printBook( struct Books *book ); int main( ) { struct Books Book1; /* 声明 Book1,类型为 Books */ struct Books Book2; /* 声明 Book2,类型为 Books */ /* Book1 详述 */ strcpy( Book1.title, "C Programming"); strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial"); Book1.book_id = 6495407; /* Book2 详述 */ strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Zara Ali"); strcpy( Book2.subject, "Telecom Billing Tutorial"); Book2.book_id = 6495700; /* 通过传 Book1 的地址来输出 Book1 信息 */ printBook( &Book1 ); /* 通过传 Book2 的地址来输出 Book2 信息 */ printBook( &Book2 ); return 0; } void printBook( struct Books *book ) { printf( "Book title : %s\n", book->title); printf( "Book author : %s\n", book->author); printf( "Book subject : %s\n", book->subject); printf( "Book book_id : %d\n", book->book_id); }
这段代码定义了一个名为 `Books` 的结构体,包含了四个成员:`title`、`author`、`subject` 和 `book_id`。结构体中还定义了一个名为 `printBook` 的函数,用于打印出传入结构体指针所指向的结构体中各个成员的值。
在 `main()` 函数中,首先定义了两个 `Books` 类型的结构体变量 `Book1` 和 `Book2`。然后使用 `strcpy()` 函数分别为两个结构体变量的成员赋值。最后通过调用 `printBook()` 函数,输出了两个结构体变量的成员值。
这段代码的主要作用是演示了如何定义结构体和使用结构体变量及指针,以及如何通过指针访问结构体成员。
阅读全文