程序改错题 程序11: 对候选人得票的统计程度。设由3个候选人,每次输入一个得票的候选人的名字,要求最后

程序改错题 程序11: 对候选人得票的统计程度。设由3个候选人,每次输入一个得票的候选人的名字,要求最后,第1张

#include<stdio.h>

#include<string.h>

struct person

{

char name[20]

int count

}leader[3]={"Li",0,"Zhang",0,"Fun",0}

void main()

{

int i,j,n /*error*/

char leader_name[20]

scanf("%d",&n)

for(i=0i<ni++) /*error*/

{

for(j=0j<3j++)

{

scanf("%s",leader_name)

if(strcmp(leader_name,leader[j].name))

{

leader[j].count++

} /*error*/

}

}

printf("\n")

for(i=0i<3i++)

{

printf("%5s:%d\n",leader[i].name,leader[i].count)

}

}

1,11。解释如下:\n是一个回车符,\\表示一个“\”字符,\x69表示ASCII是16进制69的一个字符,\082表示ASCII是八进制82的一个字符,上述转义字符加上其他普通字符共11个字符。

2,返回值是负数(非常可能是-69)。strcmp是比较两个字符串是否相等,相等返回0,第一个串大于第二个串返回>0整数,第一个串小于第二个串返回<0整数。一般的strcmp的实现方法是拿两个串的字符挨个做减法,直到不等于0时返回这个不等于0的数,所以本题返回NULL-‘E’==0-69==-69。

#include<iostream>

using namespace std

template<class T>

T Max(T a[10])

{

T max

max = a[0]

for(int i = 1i <10i++)

{

if(a[i]>max)

max = a[i]

}

return max

}

int main()

{

int b[10]={2,34,67,87,23,5,1,3,456,6}

double c[10] = { 4.5, 45.5, 34.45, 34.545, 45.345, 3.5,5.6, 56.78, 123.34, 34.5}

cout<<Max(b)<<endl

cout<<Max(c)<<endl

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11306122.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存