请问C语言的数组编程问题?

请问C语言的数组编程问题?,第1张

C语言代码和运行结果如下:

根据提供的输入数据,4号选手刘嘉玲的平均分79明显是最高的,不应被淘汰

最低分应为5号选手梁朝伟的59分,所以图中输出与示例不一致

但结果应该没错,确实输出了最低分选手的相关信息,望采纳~

附源码:

#include <stdio.h>

#define N 5

int main() {

int no[N], score[N][4], i, j, sum, k = 0

char name[N][50]

for (i = 0i <Ni++)

scanf("%d", &no[i])

for (i = 0i <Ni++)

scanf("%s", name[i])

for (i = 0i <Ni++) {

sum = 0// 记录每名选手总成绩并求平均分毁前兆

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

scanf("%d", &score[i][j])

sum += score[i][j]

}

score[i][3] = sum / 3

if (score[i][3] <score[k][3])

k = i// 记录平均分最悔并低纤租的选手下标

}

printf("被淘汰的选手信息为:\n最低分为:%d 编号为:%d 姓名为:%s\n", score[k][3], no[k], name[k])

return 0

}

分类: 电脑/网络 >>程序设计 >>其他编程团芹语言

问题描述:

#include <iostream>

#include <string>

#include <fstream>

using namespace std

void main()

{

string file_name1以下是从一个记事本文件薯野中读入数据(我在记事本中写了"10 20"数据,并保存在"D:\\Input.txt"文件中!)

cout<<"请输入源文件名(包括路径和后缀名):"

cin>>file_name1

ifstream infile(file_name1.c_str(),ios::in)

if (!infile)

{

cerr<<"无法打开文件 "<<file_name1.c_str()<<" !!!"<<endl

exit(-1)

}

cout<<endl

char f[100]

infile.getline(f,100,EOF)

infile.close()

int i=0

while(i<100)

{if(f[i]==' ') i++如果是空格,是指向下一个字符

else if(f[i]>'0'&&f[i]<='9') 判断是否为十进制数:第一个数不能是0

{

char a[20]定义数组a,用来保存这个十进制数

int j=0

{a[j]=f[i]

i++j++

}

while(f[i]>='0'&&f[i]<='9')其实数为0~9,包括0!

{

a[j]=f[i]

i++

j++

}

i++

cout<<a<<endl输出数组a

string str=a

cout<<str<<endl输出字符串str

}

}

}

这是一个词法分析器中的判断是否塌手毕为十进制数的一段程序,我在输出时,会出现:

10烫烫烫烫烫烫烫烫烫

10烫烫烫烫烫烫烫烫烫

20烫烫烫烫烫烫烫烫烫

20烫烫烫烫烫烫烫烫烫

这样的情况,为什么会这样啊?怎么把后面那些"烫"弄掉?

解析:

程序问题是:定义了数组变量a,添加数字字符后,在结尾处未添加空字符'\0'。建议在语句

cout<<a<<endl输出数组a

之前添加一行语句

a[j]='\0'


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

原文地址: http://outofmemory.cn/yw/12422784.html

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

发表评论

登录后才能评论

评论列表(0条)

保存