输入:
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
代码:
#include<stdio.h>
int main()
{
int n,sum=0,apprmax=0,appri;
scanf("%d", &n);
char* name[10000]={0};//错误
int num[10000]={0};
for(int i=0;i<n;i++)
{
scanf("%s %d\n", name[i], &num[i]);//无法储存
sum+=num[i];
}
int avg=sum/n;
for(int j=0;j<n;j++)
{
if(num[j]-avg<0)
num[j]=avg-num[j];
else
num[j]=num[j]-avg;
}
for(int j=0;j<n;j++)
{
if(num[j]>apprmax)
{
apprmax=num[j];
appri=j;
}
}
printf("%d %s", avg, name[appri]);
return 0;
}
对于多个字符串存储时,用二维数组存储或动态数组完成
-
二维数组存储
将char* name[10000]
改为char name[10000][100]
即可 -
动态数组
char* name[10000];
for (int i = 0; i < n; i++)
{
name[i] = malloc(100 * sizeof(char)); // 分配内存来存储每个字符串
}
for (int i = 0; i < 10000; i++)
{
free(name[i]); // 释放内存
}
标签:存储,10000,name,多个,int,char,num,字符串
From: https://blog.csdn.net/ydm_ymz/article/details/144177686