好多不明白的小迷糊 2022-05-06 17:20 采纳率: 56%
浏览 14
已结题

怎么解决这个字符输入问题


#include"stdio.h"
#include"stdlib.h"
#define maxsize 100
#define max 32767
typedef struct 
{
    char top[maxsize];//顶点表 
    int arc[maxsize][maxsize];//邻接矩阵 
    int topnum,arcnum;//顶点数 ,边数 
 }Graph;
 int locate(Graph g,char n)
 {
     for(int i=0;i<g.topnum;i++)
     {
         if(g.top[i]==n)
         return i;
         else
         {
             printf("输入错误,程序结束\n"); 
             exit(0);
         }
     }
 }
 int creat(Graph &g)//创建带权值无向网 
 {
     char m,n;int i,j,k;
     printf("请输入邻接矩阵的顶点数和边数\n");
     scanf("%d%d",&g.topnum,&g.arcnum);
     printf("请输入顶点表的内容\n");
     getchar();
     for( i=0;i<g.topnum;i++)
     scanf("%c",&g.top[i]);
     for( i=0;i<g.topnum;i++)//邻接矩阵的初始化 
     for( j=0;j<g.topnum;j++)
     g.arc[i][j]=max; 
     printf("请输入每一条的连接的顶点及权值\n");
    for( i=0;i<g.arcnum;i++)
    {
        getchar();
        scanf("%c %c %d",&m,&n,&k);
        i=locate(g,m);j=locate(g,n);//查找顶点对应的数组下标
        g.arc[i][j]=g.arc[j][i]=k; 
     } 
 }
 int printf01(Graph g)//邻接矩阵无向网的输出
 {
     for(int i=0;i<g.topnum;i++)
     {
         printf("%c\t",g.top[i]);
         for(int j=0;j<g.topnum;j++)
         printf("%d\t",g.arc[i][j]);
         printf("\n");
     }
  } 
 int main()
 {
     Graph g;
     creat(g);
     printf01(g);
  }
  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-05-06 17:43
    关注
    //请今后要用
    char c;
    scanf("%c",&c);
    //时,都改为
    char s[2];
    char c;
    scanf("%1s",s);
    c=s[0];
    //自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月6日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改