永发信息网

一个C语言编程的问题

答案:5  悬赏:50  手机版
解决时间 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(); 函数没有调用,没有定义也没有声明。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯