标题:求解答,这个问题怎么解决?
只看楼主
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
结帖率:87.5%
已结贴  问题点数:5 回复次数:12 
求解答,这个问题怎么解决?
    case 2:{
        printf("输入姓名:\n");
        scanf("%s",name1);
        for(i=1;i<=n;i++)
            if(strcmp(student[i].name,name1)==0){(老是说这里有问题,“error C2664: 'strcmp' : cannot convert parameter 2 from 'int [10]' to 'const char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast,怎么解决啊?)
                printf("该生原来信息:\n");
                printf("%d  %s",student[i].number,student[i].name);
                for(j=1;j<=7;j++)
                    printf("%f",student[i].score[j]);
                printf("输入改后的信息:\n");
                printf("学号 姓名 高数 工图 英语 C语言 航概 体育 思修 \n");
                scanf("%d%s",&student[i].number,student[i].name);
                for(j=1;j<=7;j++)
                    scanf("%f",&student[i].score[j]);
            
            printf("修改完毕!\n");
            break;
            }
           }
搜索更多相关主题的帖子: 信息 姓名 conversion 
2012-12-16 00:10
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:1 
if(strcmp(student[i].name,name1)==0)
你的这个name1是否被定义成了int类型数组?这样肯定不行的,定义成char类型

我行我乐
我的博客:
http://blog.yuccn. net
2012-12-16 13:25
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:1 
说错了   cannot convert parameter 2 from 'int [10]' to 'const char *'

应该是把name1的定义修改为  char name[10]

[ 本帖最后由 mmmmmmmmmmmm 于 2012-12-18 10:33 编辑 ]

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-12-17 14:24
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
得分:0 
回复 2楼 yuccn
是char 型的啊,但是就还是那个问题,看了好多遍都查不出问题在哪里,伤脑筋啊!
2012-12-17 22:50
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:1 
name1 必须是const char *  差一丁点都不行

DO IT YOURSELF !
2012-12-18 10:37
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
得分:0 
回复 5楼 wp231957
但是必须初始化嘛?我要的是用户输入啊,这怎么办?
2012-12-18 12:47
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
我试了一下,估计用库函数不行  
自己重写strcmp吧

DO IT YOURSELF !
2012-12-18 14:29
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:0 
楼主 你把程序都发上来 看看  

这样实在没法解决


char name1[10]  这个绝对可以  

下面是测试的程序
程序代码:
#include <iostream>
using namespace std;

void main()
{
    char name1[1024];
    char name[1024] = "testname";
    cin >> name1;
    cout<< strcmp(name1, name);
}

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-12-18 15:55
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
得分:0 
回复 8楼 mmmmmmmmmmmm
好,下面都是:
// 大作业.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "string.h"



void add();
void change();
void look();   
void sum();
void output();
void deal();

struct Student
{
    int number;
    char name[10];
    float score[7];
}student[20];
int m,n,i,j,k,num1;
char name1[10];
FILE *Grade;




int main(int argc, char* argv[])
{
   
    printf("                     学生成绩管理系统\n");
    printf("*******************************************************************\n");
   
   
    Grade=fopen("grade1.txt","w");
   

    printf("输入学生人数:\n");
    scanf("%d",&n);
    printf("学号 姓名 高数 工图 英语 C语言 航概 体育 思修 \n");
    for(i=1;i<=n;i++){
        
        printf("\nNumber:\n");
        scanf("%d",&student[i].number);
        printf("Name:\n");
        scanf("%s",student[i].name);
        printf("Grade:\n");
        for(j=1;j<8;j++){
            scanf("%f",&(student[i].score[j]));
            
        }
        deal();
    }
    printf("\n");
    printf("1---增加信息\n2---修改信息\n3---查询成绩\n4---成绩统计\n5---成绩输出\n6---退出系统\n请选择:");
    int choice;
    scanf("%d",&choice);
    while(choice!=6)
    {
        switch(choice)
        {
        case 1:add();
        case 2:change();
        case 3:look();
        case 4:sum();
        case 5:output();
        }
    }
    printf("Hello World!\n");
    return 0;
}
#include "stdafx.h"
#include "string.h"

extern  m,n,i,j,k,num1,name1[10];
struct Student
{
    int number;
    char name[10];
    float score[7];
}student[20];
extern Student student[20];
FILE *Grade;


void change()
{
    printf("选择修改方式:\n");
    printf("1--根据学号修改信息\n2--根据姓名修改信息\n");
    scanf("%d",&k);
    switch(k)
    {
    case 1:{
        printf("输入学号:\n");
        scanf("%d",&num1);
        for(i=1;i<=n;i++)
            if(student[i].number=num1){
                printf("该学生原来的信息:\n");
                printf("%d  %s  ",student[i].number,student[i].name);
                for(j=1;j<=7;j++)
                    printf("%f",student[i].score[j]);
                printf("学号 姓名 高数 工图 英语 C语言 航概 体育 思修 \n");
                printf("输入改后的信息:\n");
                scanf("%d%s",&student[i].number,student[i].name);
                for(j=1;j<=7;j++)
                    scanf("%d",&(student[i].score[j]));
                printf("修改完毕!\n");
                break;
            }
           }
    case 2:{
        printf("输入姓名:\n");
        scanf("%s",name1);
        for(i=1;i<=n;i++)
            if(strcmp(student[i].name,name1)==0){
                printf("该生原来信息:\n");
                printf("%d  %s",student[i].number,student[i].name);
                for(j=1;j<=7;j++)
                    printf("%f",student[i].score[j]);
                printf("输入改后的信息:\n");
                printf("学号 姓名 高数 工图 英语 C语言 航概 体育 思修 \n");
                scanf("%d%s",&student[i].number,student[i].name);
                for(j=1;j<=7;j++)
                    scanf("%f",&student[i].score[j]);
            
            printf("修改完毕!\n");
            break;
            }
           }
    }
}

        
           


2012-12-18 22:54
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:0 
回复 9楼 冯jungle
你的工程有好几个CPP?

你一个一个发成附件吧


还有 你这个看着是C的吧 不是C++吧

[ 本帖最后由 mmmmmmmmmmmm 于 2012-12-18 23:30 编辑 ]

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-12-18 23:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-391446-1-1.html




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

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