第一题
题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入
4 0 1 0 2 1 2 3 4
输出
0 3 1 2 3 4
代码:
#include<stdio.h>
int main()
{
int indexarray[1000]={0};
int n;
int index,value;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %d",&index,&value);
indexarray[index]+=value;
}
for(int i=0;i<1000;i++)
{
if(indexarray[i])
{
printf("%d %d\n",i,indexarray[i]);
}
}
return 0;
}
第二题
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
代码:
#include<stdio.h>
int main()
{
char str[50];
scanf("%s",str);
int len=strlen(str)-1;
int number[10]={0};
for(int i=len;i>=0;i--)
{
if(number[str[i]-48]!=1)
{
printf("%c",str[i]);
number[str[i]-48]=1;
}
}
return 0;
}
第三题
题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。
示例1
输入
abc
输出
3
代码:
#include<stdio.h>
int main()
{
int scc[128]={0};
char c;
int n;
int sum;
while(scanf("%c",&c)!=EOF)
{
n=(int)c;
if(n>=0&&n<=127&&scc[n]==0&&n!=10)
{
sum++;
scc[n]=1;
}
}
printf("%d",sum);
return 0;
}
第四题
题目描述
描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入
1516000
输出
0006151
代码:
#include<stdio.h>
int main()
{
char str[50];
scanf("%s",str);
int len=strlen(str);
for(int i=len-1;i>=0;i--)
{
printf("%c",str[i]);
}
return 0;
}
第五题
题目描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
输入描述:
输入N个字符
输出描述:
输出该字符串反转后的字符串
示例1
输入
abcd
输出
dcba
代码:
#include<stdio.h>
int main()
{
char str[1000];
scanf("%s",str);
int len=strlen(str);
for(int i=len-1;i>=0;i--)
{
printf("%c",str[i]);
}
return 0;
}