#include<stdio.h>#include<string.h>void antitone(int a[],int n);main(){int a[100],i,t,n;for(i=0;a[i]!='\0';i++){scanf("%d",&a[i]);antitone(a,N);for (i=0;a[i]!='\0';i++)printf("%d\n",a[i]);}}void antitone(int a[],int n){int i,t;for(i=0;a[i]!='\0';i++){t=a[i];a[i]=a[n-i-1];a[n-i-1]=t; }}
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
我给大改了一下(也不在乎能不能被选为最佳了,嘿嘿)。
输入字符串和整数都可以,要以英文逗号分隔,长度不要超过500。
怕看不明白加了点注释,看不懂的可以问我:)
#include<stdio.h>#include<string.h>int ParseStr(char (&szInput)[500], char *(&arrRet)[500]){ int nCount = 0; char szSeps[] = ","; // 键盘输入的整数用英文逗号分隔. char *token = NULL; token = strtok(szInput, szSeps); while (token!=NULL && nCount<500/*防止越界*/) { int nLen = strlen(token); char *szToken = new char[500]; // 申请内存 if (szToken == NULL) // 分配内存失败 break; arrRet[nCount++] = szToken; if (nLen < 500) strcpy(szToken, token); else { strncpy(szToken, token, 500-1); szToken[500-1] = 0; // 结束符 } token = strtok(NULL, szSeps); } return nCount;}void antitone(char *(&arrParsed)[500], int n){ int nMid = n/2; for (int i=0; i<nMid; ++i) { char* szTemp = arrParsed[i]; arrParsed[i] = arrParsed[n-1-i]; arrParsed[n-1-i] = szTemp; }} void PutoutResult(char *(&arrParsed)[500], int n){ for (int i=0; i<n; ++i) { if (i > 0) printf(","); printf("%s", arrParsed[i]); } printf("\n");}void FreeArrayData(char *(&arrParsed)[500], int n) // 释放内存{ for (int i=0; i<n; ++i) { delete arrParsed[i]; arrParsed[i] = NULL; }}void main(){ char szInput[500] = {0}; gets(szInput); // 获取输入,以英文逗号分隔. char *arrParsed[500] = {0}; // 解析结果 int nCount = ParseStr(szInput, arrParsed); // 逆序 antitone(arrParsed, nCount); // 输出结果 PutoutResult(arrParsed, nCount); // 释放内存 FreeArrayData(arrParsed, nCount);} |
嘿嘿,附个测试结果吧:
沧海一幻觉
TA贡献1824条经验 获得超5个赞
#include<stdio.h>
#include<string.h>
void antitone(int *m,int *n);
void main()
{
int a[10],i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<5;i++)
antitone(&a[i],&a[10-i-1]);
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
}
void antitone(int *m,int *n)
{
int t;
t=*m;
*m=*n;
*n=t;
}
功能已经实现了!希望我的解答能带给你帮助!
就是你最好不要给整型数组赋字符值,那样很容易出错,还有传数组给函数时最好用指针!
先用了10个数测试了一下,已经没问题了!
- 2 回答
- 0 关注
- 269 浏览
添加回答
举报
0/150
提交
取消

