一个C语言编程的问题
解决时间 2021-02-12 03:13
- 提问者网友:战魂
- 2021-02-11 02:21
我初学c语言,有一道题是这样的:
编写一个程序,输入名字,在比名字宽3个字符的字段内打印它。编程工具是VS2010,但编出来总是提示错误,我编的程序是这样的:
#include
#include
int main(void)
{
char name;
printf("Please enter your name:\n");
scanf("%s",name);
int n = strlen(name);
printf("\"%*s\"",n+3,name);
getch();
return 0;
}
最后,想问个额外的问题,我学的书是Primer Plus C,他们的网站是www.samspublishing.com,这书的答案说在这网上有,但在哪里呢?
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-02-11 03:13
你的代码错误原因是你的name是一个char型的,你要输入的是一个名字,名字是字符串,要用字符数组来存,你把开始的char name ;改成char name[20];就行了。另外return上面的getch()函数在头文件conio.h里面,不在stdio.h里面,所以你可以在最前面前面写上一个#include或者你可以直接把getch()删掉
全部回答
- 1楼网友:西风乍起
- 2021-02-11 07:51
请将编译器的报错情况列出来吧。
百度搜索一下“C Primer Plus 习题”就能找到了^_^
- 2楼网友:雪起风沙痕
- 2021-02-11 06:25
char name;你定义的name只能赋一个字符,定义成数组吧比你输入的名字长一点的,比如:char name[10];
书的话你自己在百度文库搜搜看吧,可能会有。
- 3楼网友:像个废品
- 2021-02-11 04:46
已经给你解答了。
无错误,
望采纳为满意。
写了二十多分钟呢。
#include <stdio.h>
int main()
{
int m,n,i,j;
float a[1000][10];
float sum=0;
printf("请输入学生数和课程数\n");
scanf("%d%d",&m,&n);
printf("请分别输入每个学生的成绩\n");
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("每个学生的成绩如下:\n");
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
printf("%2.0f\t",a[i][j]);
}
printf("\n");
}
for (j=0;j<n;j++)
{
for (i=0;i<m;i++)
{
sum+=a[i][j];
}
a[0][j]=sum/m;
sum=0;
}
printf("每门功课的平均分如下:\n");
for (j=0;j<n;j++)
{
printf("%2.1f\t",a[0][j]);
}
return 0;
}
- 4楼网友:撞了怀
- 2021-02-11 04:30
你定义的是字符变量char name; 但是scanf("%s",name);输入的是字符串%s。
printf("\"%*s\"",n+3,name);这个是不是错了,\"代表一个双引号字符,%*s格式说明错了吧
getch(); 函数没有调用,没有定义也没有声明。
我要举报
大家都在看
推荐资讯