fatal error LNK1120: 1 unresolved externals,该如何处理
fatal error LNK1120: 1 unresolved externals
#include<stdio.h>
#include<math.h>
int main ()
{
int number[100];
int a,i,j,temp,b;
scanf("%d",&a);
b=a;
while(a--)
scanf("%d",number);
for(i=b;i>0;i--)
for(j=i-1;j>=0;j--)
if(abs(number[i])<abs(number[j]))
{
number[i]=temp;
number[i]=number[j];
number[j]=temp;
}
for(;b>=0;b--)
printf("%d ",number[b]);
printf("%d",number[a]);
return 0;
}
Description
给你n(n<=100)个数,要求你把这n个数按照绝对值从小到大排序。
多Case,处理直到文件结束。
Input
输入一个数n,接下来一行是n个整数(-10000,10000)。
Output
排序后按照绝对值从小到大输出n个数,输出一行,每两个数字之间有个空格,最后一个数字后面没空格。
Sample Input
4
-3 -4 1 2
1
10
Sample Output
1 2 -3 -4
10
------解决方案--------------------
temp没有初始化直接拿来赋值了
代码中问题很多:
1、数组索引是从0开始的,所以如果输入四个数,索引只会到3;
2、输入数组数据的时候scanf("%d",number);数组只会记录一个数,数据实际没有输入进去根本;
2、你的排序是从数组第一个数开始从小到大,输出却是从最后一个开始,输出又是从大到小;
我就发现了这些,修改后代码:
#include<stdio.h>
#include<math.h>
int main ()
{
int number[100];
int a,i,j,temp,b;
scanf("%d",&a);
b=a;
while(a--)
scanf("%d",number);
for(i=b;i>0;i--)
for(j=i-1;j>=0;j--)
if(abs(number[i])<abs(number[j]))
{
number[i]=temp;
number[i]=number[j];
number[j]=temp;
}
for(;b>=0;b--)
printf("%d ",number[b]);
printf("%d",number[a]);
return 0;
}
Description
给你n(n<=100)个数,要求你把这n个数按照绝对值从小到大排序。
多Case,处理直到文件结束。
Input
输入一个数n,接下来一行是n个整数(-10000,10000)。
Output
排序后按照绝对值从小到大输出n个数,输出一行,每两个数字之间有个空格,最后一个数字后面没空格。
Sample Input
4
-3 -4 1 2
1
10
Sample Output
1 2 -3 -4
10
------解决方案--------------------
temp没有初始化直接拿来赋值了
代码中问题很多:
1、数组索引是从0开始的,所以如果输入四个数,索引只会到3;
2、输入数组数据的时候scanf("%d",number);数组只会记录一个数,数据实际没有输入进去根本;
2、你的排序是从数组第一个数开始从小到大,输出却是从最后一个开始,输出又是从大到小;
我就发现了这些,修改后代码:
- C/C++ code
#include<stdio.h> #include<math.h> int main () { int number[100]; int a,i,j,temp,b; scanf("%d",&a); b=a; while(a--) { scanf("%d",&number[a]); } for(i=b-1;i>0;i--) { for(j=i-1;j>=0;j--) { if(abs(number[i])<abs(number[j])) { temp=number[i]; number[i]=number[j]; number[j]=temp; } } } for(i=0;i<b;i++) { printf("%d ",number[i]); } return 0; }