| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 900 人关注过本帖
标题:一个投票小程序的故障解决
只看楼主 加入收藏
樱雨纷飞时节
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-18
收藏
 问题点数:0 回复次数:9 
一个投票小程序的故障解决
//投票系统

#include <stdio.h>
#include <stdlib.h>
//#include <math.h>

struct stu{
    char name[4];
    int number;
};

void main()
{                                                                                                                              
   
   
    struct stu man[3]={{"aaa",0},{"bbb",0},{"ccc",0}};
   
    printf("你好,请输入候选人的姓名:候选人有aaa,bbb,ccc\n");
   
    int a=0,b=0,c=0;
   
    for(int i=0;i<=2;i++)
    {
        printf("第%d位投票的人是:",i+1);//i从零开始,所以显示为+1
        
        char *inname;//接受字符串
        
        scanf("%s",inname);
        
        if(inname=="aaa")    //判断             //词句开始执行就内存错误,故障点所在
        {
            a++;
        }else if(inname=="bbb"){
            b++;
        }else if(inname=="ccc"){
            c++;
        }
        
        
    }
   
    printf("投票结束:%d %d %d\n",a,b,c);
   
    for(int j=0;j<=2;j++){
        printf("姓名:%s\t\t得票数:%d\n",man[j].name,man[j].number);
    }
   
   
   
}
搜索更多相关主题的帖子: include number 候选人 姓名 
2015-10-19 10:14
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
使用 strcmp 函数


[fly]存在即是合理[/fly]
2015-10-19 10:16
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
if(inname=="aaa")    //判断             //词句开始执行就内存错误,故障点所在
        {
            a++;
        }else if(inname=="bbb"){
            b++;
        }else if(inname=="ccc"){
            c++;
        }
比较字符串用strcmp()函数在string.h头文件中,你这种比较是比较内存地址是否
相同不会比较内容

一片落叶掉进了回忆的流年。
2015-10-19 10:17
樱雨纷飞时节
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-18
收藏
得分:0 
回复 2楼 azzbcc
大神你好,我还想问一下:

我把指针初始化为 char *inname[10];
程序没有问题,但是a++,b++,c++又执行不起来。

那又是为什么?

路途虽远,不忘初心
2015-10-19 10:19
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
什么意思?

一片落叶掉进了回忆的流年。
2015-10-19 10:24
樱雨纷飞时节
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-18
收藏
得分:0 
回复 3楼 诸葛欧阳
你好哎。

按照你的说法:你瞧

char *name="aaa";
printf("%s\n",name);

应该输出地址啊?大师教我

路途虽远,不忘初心
2015-10-19 10:27
kenierlee
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:58
专家分:474
注 册:2015-7-28
收藏
得分:0 
以下是引用樱雨纷飞时节在2015-10-19 10:27:15的发言:

你好哎。

按照你的说法:你瞧

char *name="aaa";
printf("%s\n",name);

应该输出地址啊?大师教我

%s表示输出字符串,对应的参数是一个字符串的首地址,这里name就是"aaa"字符串的首地址。
如果你用整数的方式输出name就可以得到name代表的地址,可以尝试用%0x或者%p输出看看。
2015-10-19 10:38
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
以下是引用樱雨纷飞时节在2015-10-19 10:27:15的发言:

你好哎。

按照你的说法:你瞧

char *name="aaa";
printf("%s\n",name);

应该输出地址啊?大师教我

用%u或&p输出看看。

一片落叶掉进了回忆的流年。
2015-10-19 10:40
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
%p

一片落叶掉进了回忆的流年。
2015-10-19 10:40
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
稍作修改了一下,借鉴于楼主的代码
程序代码:
//投票系统
#include <stdio.h>
#include <stdlib.h>
//#include <math.h>
#include<string.h>

struct stu{
    char name[4];
    int number;
};

void main()
{                                                                                                                               
    int a=0,b=0,c=0,i,j;
    char *inname;//接受字符串
    char k[20];
    struct stu man[3]={{"aaa",0},{"bbb",0},{"ccc",0}};
    inname = k;
    printf("你好,请输入候选人的姓名:候选人有aaa,bbb,ccc\n");
    for(i=0;i<=2;i++)
    {
        printf("第%d位投票的人是:",i+1);//i从零开始,所以显示为+1
        
        scanf("%s",k);
        if(strcmp(inname, "aaa") == 0)
        {
            a++;
            man[0].number = a;
        }
        else if(strcmp(inname, "bbb") == 0)
        {
            b++;
            man[1].number = b;
        }
        else if(strcmp(inname, "ccc") == 0)
        {
            c++;
            man[2].number = c;
        }
        
        
    }
    
    printf("投票结束:%d %d %d\n",a,b,c);
    
    for( j=0;j<=2;j++){
        printf("姓名:%s\t\t得票数:%d\n",man[j].name,man[j].number);
    }
    
    
    
}

代码代码,带着的石头码!!!
2015-10-19 11:55
快速回复:一个投票小程序的故障解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017540 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved